#灵感笔记#关于增强IE对CSS选择符的支持

虽然在官方规范之中,HTML有版本,CSS有级别,但实践当中无所谓版本级别,关键是看浏览器是否支持。

如IE6不支持CSS子元素选择符,就非常令人沮丧。
虽有其它替代方案,比如给HTML元素都加上类名,但那样代码量会增加不少,而且不能很好的利用HTML元素语义。

目前有一个第三方js库 Selectivizr(http://selectivizr.com/),当前版本v1.0.2,可增强IE对很多CSS3的伪类选择符及属性选择符的支持效果,需要配合一些“第四方”js库(如jQuery)来使用。
其原理大概如此:分析当前页面加载的外部样式表URL,通过ajax重新读取这些样式表,将其中IE6不支持的选择符替换成特定的类名,同时给其对应的HTML元素也加上此类名,最后将修改过的样式表附加到文档。
不足之处:
1.只能处理外部样式表,页面内嵌的<style></style>元素未做处理。
2.需要通过ajax重新加载一次样式表,不必要的资源消耗。
3.对于复杂的选择符,只用一个简单的类名代替,原有的CSS优先级权重关系被严重破坏。
4.修改过的样式表破坏了原有的顺序,也有可能影响到优先级。
5.关键是它目前还不支持在IE6中使用子元素选择符“E>F”

下面讨论如何来进一步增强IE的选择符支持
IE提供了一些DOM API来访问CSS规则(CSS Rules),代码形式大致如下:

do
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值