样式化设置的属性的元素是很容易:E[attr]

有什么办法样式基础上,没有一个属性,像这样的东西E[!attr]与CSS2的元素? (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>

abcdef有针对ID-ED规则降低器优先级,这样既a有填充0。我不能改变规则的顺序之上,但我可以改变ID-ED规则添加自己的规则。我想避免像#n a.abc为每类书写规则(有许多是)。相反,我需要这样的东西#n a[!class]保持所有类编as完整。

有帮助吗?

解决方案

不幸的是,不是在CSS2。你能做的最好是级联的声明:

E {color: red}
E[attr] {color: blue}

但是,即使这真的不能依赖,因为IE6不接受属性选择。

在CSS3,虽然,有可爱的 “:不” 伪选择器( http://www.w3.org/TR/css3-selectors/#negation )。

修改

感谢澄清。如何:

.abc {padding:1em; !important} .def{padding:2em; !important}

#n a{padding: 1em}

其他提示

我不认为这可以在CSS2来完成。在CSS3,你会使用 “不” 的语法

input:not([type="file"])
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top