2

我真的很喜欢 + 选择器,并且不想仅仅为了 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 规则的数组(或其他东西)吗?

干杯,曼努埃尔

4

3 回答 3

0

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

于 2009-05-30T13:43:10.637 回答
0

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

于 2009-05-31T11:34:44.527 回答
0

你可以做的是这样的:

使用正常的一切,但 IE6 CSS 规则,但也创建另一个具有相同样式的类:

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

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

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

使用这种方法,如果他们在禁用 Javascript 的 IE6 上,则无法获得样式的唯一方法。在其他浏览器上没有 javascript 的用户不会受到影响。

于 2009-05-31T11:39:13.457 回答