使用属性集设置元素的样式很简单:E[attr]。
有没有办法在没有属性的情况下用CSS2设置元素的样式,就像这样的E[!attr]?(JavaScript解决方案不是一个选项)。
例如,有几个类规则,后面跟着id规则:
.abc {padding:1em;}
.def {padding:2em;}
#n a {padding:0;}html代码是:
<div id="n"><a href="" class="abc">.</a><a href="" class="def">.</a></div>根据id-ed规则,类abc和def的优先级较低,因此两个a都有填充0。我不能改变上面规则的顺序,但我可以改变id-ed规则,添加我自己的规则。我希望避免为每个类编写像#n a.abc这样的规则(有很多)。相反,我需要像#n a[!class]这样的东西来保持所有带类的a的完整性。
发布于 2009-12-16 23:35:51
遗憾的是,在CSS2中并非如此。你能做的最好的事情就是级联你的声明:
E {color: red}
E[attr] {color: blue}但即使这样也不能真正依赖,因为IE6不支持属性选择器。
然而,在CSS3中,有一个可爱的":not“伪选择器(http://www.w3.org/TR/css3-selectors/#negation)。
编辑
谢谢你的澄清。这样如何:
.abc {padding:1em; !important} .def{padding:2em; !important}
#n a{padding: 1em}发布于 2009-12-16 23:37:41
我认为这在CSS2中是做不到的。在CSS3中,您将使用"not" syntax
input:not([type="file"])https://stackoverflow.com/questions/1915325
复制相似问题