CSS3高级选择器确实很强大,可以显著简化html代码,大幅提升CSS的可读性。IE9以下的IE浏览器是不支持CSS3高级选择器,但是有额外的方法可以使IE6-IE8浏览器也能使用CSS高级选择器。
需要先下载两个文件:
domassistant.js http://www.domassistant.com/
selectivizr.js http://selectivizr.com/
使用方法:
在head标签之间或者body标签之后导入这两个文件就可以了
<!--[if IE]>
<script type="text/javascript" src="DOMAssistantCompressed-2.8.1.js"></script>
<script type="text/javascript" src="selectivizr-min.js"></script>
<![endif]-->
PS:
网页中使用的类库不一样,selectivizr.js支持的CSS3高级选择器也不一样。
如果使用的是jQuery,那么selectivizr只支持 :nth-child,:first-child,:last-child,:only-child;
如果使用的是DOMAssistant,除了:empty以外,其他的选择器都可以被支持。
样式表必须通过<link>标签引入。页面级的样式表或者内联的样式表将无效。不过你可以在外部样式文件中使用@import 导入其它样式文件;
样式表文件必须和页面放在同一个域名下面,使用file://路径的样式导入的样式表将不起作用;
该仿真方法不是动态的,样式被应用之后再改变DOM,将会无效。
使用此种方法强制IE6-IE8浏览器支持CSS3选择器,但是不可避免的情况是元素会在页面加载完毕的时候“闪现”一下。