快速业务通道

让IE可以变相支持CSS3选择器

作者 佚名技术 来源 CSS技术 浏览 发布时间 2012-02-26
了避免这个问题,每一个样式文件都会通过XMLHttpRequest下载。这允许该脚本绕开浏览器内置的CSS解释器并能够读取原始的CSS文件。

  • 访问项目主页
  • 下载ie-css3.js
  • 下载DOMAssistant

替代方案

显然这个也并非完美的方案,对于Ajax网站来说,它基本上是不能用的,因为在生成的样式表被应用之后再改变DOM,就不会有效了。但是事实上我们可以自己来自定义一个ie-css3的。只是没有它这个这么智能。

使用 cssQuery

cssQuery是由业界大牛Dean Edwards开发的一个Javascript组件。它就是为CSS 选择器而生的。它可以支持几乎所有的CSS 选择器,包括CSS3选择器。当然它在实现的时候进行了分级,分别针对CSS1,CSS2和CSS3制作了一个独立的js包,以及一个标准包。支持所有A级浏览器。

简单的用法:

var tags = cssQuery("body > p");
var tags = cssQuery("[href]");
var tags = cssQuery("a[href=''#'']");

然后你就可以自己写一些js为相应的对象添加想用的样式了。

我建议对支持CSS高级选择器的浏览器使用原生的CSS选择器写法,然后通过cssQuery在IE中动态的为响应的元素添加一个样式名。

比如,我们可以这样写CSS:

a[herf=''#''],a.empty{color:red}

这里的第一条CSS3选择器是用于Firefox/webkit等支持CSS3选择器的非IE浏览器的,a.empty是专门为IE而写。然后通过CSSQuery动态的在IE浏览器中为对应的元素添加样式:

var tags = cssQuery("a[href=''#'']");
tags.className="empty";

当然,上面的这段js最好使用IE的条件注释

使用 jQuery

据说jQuery的选择器比cssQuery要快很多。当然,无可否认,jQuery的选择器是目前流行的js框架中最好用的一个。而使用jquery来实现类似上述功能要方便很多,因为jQuery的选择器更好用。

OK,jQuery的做法和cssQuery有些类似,CSS可以写成上面一样的,JS可以这样写:

$("a[href=''#'']").addClass("empty");

更具体的用法可以查看我之前写的一个小例子《使用jQuery创建个性化链接样式

使用 DOMAssistant

DOMAssistant也是一个很不错的JS库,它提供了一些类似jQuery的功能,比如CSS 选择器、事件以及一些DOM操作。它的优点就是小巧,压缩后只有9KB,我想这就是Keith Clark选择DOMAssistant来作为ie-css3.js的基础框架的主要原因吧。jQuery越来越肥胖了,而且用于实现这个功能有些浪费了。而且DOMAssistant的用

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号