诚然,HTML5提供的更具语义化的标签,勇者更方便,可是IE6~8不支持,IE6~8不能识别这些标签,因此不能给他们添加样式,也不能完成页面渲染。如下是完成兼容的几个方法。javascript
1.运用html5shiv框架。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 便可实现。html5shiv就是根据这个原理建立的。html
<!-–[if lt IE 9]--><script src=" http://html5shiv.googlecode.com/svn/trunk/html5.js "></script ><!--[endif]–- > html5
2.通配符方法 java
使用全局选择器,通配符(*
)指向正确的目标元素,无脚本应用。框架
这种方法适用相似于 body > * p {}的后代。代码以下:wordpress
注:这种方法只适用IE7,8 IE6不支持。svn
3.IE条件注释 google
就是用IE条件注释,若是是IE9如下,就用传统的div。3d
注释:以为这种方式实现起来很臃肿,没什么使用价值。code
4.命名空间
(1) 修改<html>
标签处的命名空间
(2) 使用相似<html5:section><html5:/section>
标签
(3) 使用以下选择器名称进行控制:html5\:section {}
代码以下:
注:实现IE6~8兼容
总结来讲,命名空间法仍是比2,3方法靠谱多了~~不过htmlshiv仍然是最方便最有效的~~~
详情请见:http://www.zhangxinxu.com/wordpress/2012/07/no-javascript-ie-html5-elements/