实现IE6的+选择器

时间:2009-05-30 13:34:37

标签: jquery css internet-explorer-6 selector

我非常喜欢+选择器,并且不想为IE6解决方法添加另一个css规则。 那么有一个jquery方法来检查所有现有的css规则,如果它使用+选择器然后修改元素。

这样的事情:

if (IE6)
  for (var rule in $.cssrules)
    if (rule.selector.find('+'))
       $(rule).style = rule.style; // here the + selector works even for IE6 because jquery emulates it.

所以基本的问题是:我可以获得文档中定义的所有css规则的数组(或其他内容)吗?

干杯, 曼努埃尔

3 个答案:

答案 0 :(得分:0)

如果您通过类应用规则,也许您可​​以检查应该应用的已知元素的属性并查看它是否已应用?

答案 1 :(得分:0)

有办法做到这一点。实际上,一个名为 IE7 的JavaScript库已经做到了这一点以及更多 - 它支持Internet Explorer 6甚至5上的大多数CSS选择器: http://code.google.com/p/ie7-js/
我应该说我自己没有用过它,但我听说过它很好。

答案 2 :(得分:0)

你能做的是这样的事情:

使用正常的所有 - 但是 - IE6 CSS规则,但是还要创建另一个具有相同样式的类:

/* CSS */
.myNormal + .cssRule + strong,
.myOverrideClass {
    color: #f0f;
}

然后,使用jQuery,将override类应用于普通CSS选择器匹配的元素:

$('.myNormal + .cssRule + strong').addClass('myOverrideClass');

使用此方法,某人无法获取样式的唯一方法是,如果他们在IE6上禁用了Javascript。在其他浏览器上没有javascript的用户不会受到影响。