IE8以及以下的版本,不支持HTML5新增加的语义化标签。
那么这个问题怎么解决呢?其实很简单啊!
方法 1 :
( 1 ) 在浏览器解析之前,动态创建 HTML5 语义化标签。
( 2 )由于动态创建的新标签元素默认是行内,需要转换显示模式,将类似于header , footer , nav 这样有语义的标签转换为符合语义的块级元素。
方法 2 :
-
如果有多个语义化标签一个个动态创建真的会巨麻烦,所以就有了强大的 html5shiv.js 这个插件来解决这个问题。
-
为了兼容众多的 HTML5 语义化标签,一般用插件来兼容。
-
这个插件的原理就是动态创建语义化标签,然后转换显示模式。
-
为了兼容低版本的浏览器,才需要引入 html5shiv.js ,对于高版本的浏览器没必要引入之后多发一次请求。
-
所以对于这个这个问题可以用IE的条件注释来解决。
-
条件注释,是一种兼容IE的方式,这个注释语法只有IE9以及以下才会解析执行,对于其他的都会当做普通注释,不会有其他影响.
条件注释中有以下几个运算符
-
lt 小于
-
lte 小于等于
-
gt 大于
-
gte 大于等于
具体引入的时候如下,最好写在head部分,就可已在浏览器解析之前,进行动态创建了。具体代码示例如下:
<!--[if lte IE 8]>
<script src="./html5shiv.js"></script>
<![endif]-->