HTML5 - 让老浏览器支持新语义元素的几种方法

来源:互联网 发布:工厂花季少女走红网络 编辑:程序博客网 时间:2024/04/29 19:21

基本上所有现代浏览器都已经很好的支持HTML5新增的语义元素,但市面上还有许多机器认使用IE9之前的版本(比如IE8)。所以为了兼容这些浏览器,当我们使用新语义元素时,也要确保它们在这些古老的浏览器上能正常显示。
下面总结了三种让旧浏览器支持新语义的办法。

方法1:为语义元素添加样式
浏览器在遇到不认识的元素时,会把它们当成内联(inline)元素。而大多数HTML5语义元素都是块级元素,需要单独一行来呈现它们。
(1)首先我们可以通过一条“超级规则”,将它们显示为块级元素,避免它们都挤在一起。

article, aside, figure, figcaption, footer, header, main, nav, section, summary {    display:block;}

(2)虽然添加了上面的样式可以解决大多数浏览器的兼容问题。但对于较早版本的IE这样做还不够,它们会拒绝给无法识别的元素应用样式。 所以我们还要通过JavaScript创建新元素,这样可以骗过IE,让它识别外来元素。

<script>    document.createElement('article');    document.createElement('aside');    document.createElement('figure');    document.createElement('figcaption');    document.createElement('footer');    document.createElement('header');    document.createElement('main');    document.createElement('nav');    document.createElement('section');    document.createElement('summary');</script>

方法2:使用html5.js垫片脚本
亲手写上面的样式还有js代码太麻烦,我们可以直接引用html.js这个脚本。
这个脚本除了创建所有的新HTML元素,还会为它们动态应用前面提到的样式,确保新元素能正确地显示为块元素。
(注意:对于html5.js的引用放在IE的条件注释中,这样这个脚本只有在旧版本的IE下才会执行。)

<html><head><!--[if lt IE 9]><script src="html5.js"></script><![endif]--></head><body><header>welcome to hangge.com</header><aside>做最好的开发者知识平台</aside></body><html>

方法3:使用Modernizr - 推荐
modernizr.js除了提供HTML5的检测功能,还内置了HTML5垫片脚本。如果页面已经使用了Modernizr,那就不需要再使用html5.js或者添加什么样式规则了。

<script src="modernizr.js"></script>

原文出自:www.hangge.com 转载请保留原文链接:http://www.hangge.com/blog/cache/detail_846.html

0 0
原创粉丝点击