博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5新标签的兼容性处理
阅读量:6266 次
发布时间:2019-06-22

本文共 2289 字,大约阅读时间需要 7 分钟。

HTML5新的语义标签尽管有很多的好处,但是在低版本的老IE浏览器中还是存在兼容性问题的,常常让人感到头疼,到底是大胆的使用新标签还是使用传统的大量的DIV无义标签?今天就简单的看看H5新标签的兼容性处理方式。

首先来看一小段简单的代码:

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<
html
>
<
head 
lang
=
"en"
>
    
<
meta 
charset
=
"UTF-8"
>
    
<
title
>测试H5新标签兼容性</
title
>
 
    
<
style
>
        
header, footer{width:50px; height: 50px; background-color: #f00;}
    
</
style
>
</
head
>
<
body
>
<
header 
id
=
"header"
>header</
header
>
<
footer 
id
=
"footer"
>footer</
footer
>
 
</
body
>
</
html
>

Google浏览器下:

IE6浏览器下:

很明显,header和footer在支持H5新标签的浏览器下已块级元素呈现,而在IE8及以下的浏览器中以文本呈现并且样式没有起作用,说明不被支持,那如何解决呢?

首先,第一种方法便是使用DOM操作来添加这些标签,既然浏览器不支持,那我自己来创建一个:

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html>
<
html
>
<
head 
lang
=
"en"
>
    
<
meta 
charset
=
"UTF-8"
>
    
<
title
>测试H5新标签兼容性</
title
>
    
<
script
>
        
document.createElement('header');
        
document.createElement('footer');
    
</
script
>
    
<
style
>
        
header, footer{display: block; width:50px; height: 50px; background-color: #f00;}
    
</
style
>
</
head
>
<
body
>
<
header 
id
=
"header"
>header</
header
>
<
footer 
id
=
"footer"
>footer</
footer
>
 
</
body
>
</
html
>

这时候,我们再来看看IE6浏览器显示的效果:

红色的背景色可以显示出来了,说明通过document.createElement()这一方法是可行的,那为什么样式的宽高不起作用呢?因为添加的元素是内联元素,内联元素是没有宽高的,在了解这一点以后,我们再给案例中的header和footer添加一个"display: block;"属性,看看效果会有什么变化。

1
2
3
4
5
<
style
>
    
header, footer{display: block; 
                   
width:50px; height: 50px; 
                   
background-color: #f00;}
</
style
>

IE6浏览器显示的效果:

现在显示的效果跟我们需要的就完全一样了,也就是说通过这种方法可以解决H5新标签在老IE浏览器中的兼容问题。但是,另外一个问题,那么多的新标签,如果每个都要通过这种方法去生产的话,是不是太麻烦了呢?


所以,我们现在介绍第二种方式,直接借用前辈大牛封装好的js库 --- html5shiv.js

HTML代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<
html
>
<
head 
lang
=
"en"
>
    
<
meta 
charset
=
"UTF-8"
>
    
<
title
>测试H5新标签兼容性</
title
>
    
<
script 
src
=
"js/html5shiv.js"
></
script
>
 
</
head
>
<
body
>
<
header 
id
=
"header"
>header</
header
>
<
footer 
id
=
"footer"
>footer</
footer
>
<
script 
src
=
"js/jquery-1.11.0.min.js"
></
script
>
 
<
script
>
    
$('#header').css('color','#f00');
    
$('#footer').css({'width':'100px','height':'100px',
                      
'border':'1px solid #ddd',
                      
'backgroundColor':'#f00'});
    
$('#header').html('我是一只小小鸟');
</
script
>
 
</
body
>
</
html
>

那我们现在直接打开IE6浏览器看效果:


完全可以实现我们想要的效果,而且操作更加的简单,代码量更少,大家不妨也可以在IE7和IE8浏览器中也测试一下。

本文转自   frwupeng517   51CTO博客,原文链接:http://blog.51cto.com/dapengtalk/1839298

转载地址:http://nicpa.baihongyu.com/

你可能感兴趣的文章
Linux Tcl和Expect的安装
查看>>
WPF中的依赖项属性(转)
查看>>
linux防火墙相关 iptables
查看>>
最简单的单例模式
查看>>
JPopupMenu的使用以及JPopupMenu中子组件的事件处理
查看>>
从反汇编的角度看引用和指针的区别
查看>>
拓马长枪定乾坤
查看>>
UIProgressView的详细使用
查看>>
Silverlight实用窍门系列:70.Silverlight的视觉状态组VisualStateGroup
查看>>
照片筛选与上传功能
查看>>
Hello ZED
查看>>
常见web攻击方式
查看>>
hdu 4472
查看>>
oracle存储过程中is和as区别
查看>>
windows 2003 群集
查看>>
几个gcc的扩展功能
查看>>
Spark一个简单案例
查看>>
关于结构体占用空间大小总结(#pragma pack的使用)
查看>>
通过浏览器查看nginx服务器状态配置方法
查看>>
shell简介
查看>>