我非常喜欢+选择器,并且不想为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规则的数组(或其他内容)吗?
干杯, 曼努埃尔
答案 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的用户不会受到影响。