首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未设置attr时使用CSS2设置样式

未设置attr时使用CSS2设置样式
EN

Stack Overflow用户
提问于 2009-12-16 23:23:33
回答 2查看 78关注 0票数 0

使用属性集设置元素的样式很简单:E[attr]

有没有办法在没有属性的情况下用CSS2设置元素的样式,就像这样的E[!attr]?(JavaScript解决方案不是一个选项)。

例如,有几个类规则,后面跟着id规则:

代码语言:javascript
复制
.abc {padding:1em;}
.def {padding:2em;}
#n a {padding:0;}

html代码是:

代码语言:javascript
复制
<div id="n"><a href="" class="abc">.</a><a href="" class="def">.</a></div>

根据id-ed规则,类abcdef的优先级较低,因此两个a都有填充0。我不能改变上面规则的顺序,但我可以改变id-ed规则,添加我自己的规则。我希望避免为每个类编写像#n a.abc这样的规则(有很多)。相反,我需要像#n a[!class]这样的东西来保持所有带类的a的完整性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-16 23:35:51

遗憾的是,在CSS2中并非如此。你能做的最好的事情就是级联你的声明:

代码语言:javascript
复制
E {color: red}
E[attr] {color: blue}

但即使这样也不能真正依赖,因为IE6不支持属性选择器。

然而,在CSS3中,有一个可爱的":not“伪选择器(http://www.w3.org/TR/css3-selectors/#negation)。

编辑

谢谢你的澄清。这样如何:

代码语言:javascript
复制
.abc {padding:1em; !important} .def{padding:2em; !important}

#n a{padding: 1em}
票数 3
EN

Stack Overflow用户

发布于 2009-12-16 23:37:41

我认为这在CSS2中是做不到的。在CSS3中,您将使用"not" syntax

代码语言:javascript
复制
input:not([type="file"])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1915325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档