让IE支持HTML5引入的新属性
诚然,HTML5提供的更具语义化的标签,勇者更方便,但是IE6~8不支持,IE6~8不能识别这些标签,所以不能给他们添加样式,也不能完成页面渲染。以下是完成兼容的几个方法。
1.运用html5shiv框架。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。html5shiv就是根据这个原理创建的。
<!-–[if lt IE 9]--><script src=" http://html5shiv.googlecode.com/svn/trunk/html5.js "></script ><!--[endif]–- >
2.通配符方法
使用全局选择器,通配符(*
)指向正确的目标元素,无脚本应用。
这种方法适用类似于 body > * p {}的后代。代码如下:
注:这种方法只适用IE7,8 IE6不支持。
3.IE条件注释
就是用IE条件注释,如果是IE9以下,就用传统的div。
注释:觉得这种方式实现起来很臃肿,没什么使用价值。
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/