【发布时间】:2019-10-09 08:29:52
【问题描述】:
我只想将样式应用于不具有 class1 和 class2 两个类的元素
在本例中,我希望“两者兼有”为红色(这可行),而“有一个”和“有另一个”为灰色(这不可行)。
下面的例子没有成功。有没有办法做到这一点并拯救我的一天?
div.class1.class2 { background: red; }
div:not(.class1.class2) { background: grey; }
<div class="class1">has one</div>
<div class="class2">has another</div>
<div class="class1 class2">has both</div>
<div class="class3">has anything else</div>
当我研究https://developer.mozilla.org/en-US/docs/Web/CSS/:not的语法时,似乎是不可能的。但是,如果我误读了它,或者存在一些未记录的方法来做到这一点,我请你帮忙。
【问题讨论】:
-
你没有说
.class3会收到什么颜色。它应该也是灰色的,因为它不是两个类 class1 和 class2,还是因为它是 不是两个类 class1 和 class2,所以它不会收到任何颜色? -
问题是“如何在一次性声明中实现”。当然我可以声明 div.class1, div.class2 { ... },但这并不好玩。如果我添加更多类会怎样。
-
请清楚您的真正目的,以便我们提供好的答案
-
哎呀,我忘了说我写的应该把 .class3 设置为灰色,逻辑上!
-
我建议在这里向我们展示您的真实案例。光看问题,去掉
:not(.class1.class2)就能解决问题