如何使用CSS:not(.class1.class2)?

如何使用CSS:not(.class1.class2)?,css,selector,Css,Selector,我只想对不同时具有类class1和class2 在本例中,我希望“hasbeath”为红色(此选项有效),而“hasbone”和“hasbeather”为灰色(此选项无效) 以下示例不适用于此作业。有没有办法做到这一点,拯救我的一天 div.class1.class2{背景:红色;} div:not(.class1.class2){背景:灰色;} 有一个 还有一个 两者都有 有任何其他内容您可以为具有这两个类之一的元素提供灰色背景,为具有这两个类的元素提供红色背景 div.class1.cl

我只想对不同时具有类
class1
class2

在本例中,我希望“hasbeath”为红色(此选项有效),而“hasbone”和“hasbeather”为灰色(此选项无效)

以下示例不适用于此作业。有没有办法做到这一点,拯救我的一天

div.class1.class2{背景:红色;}
div:not(.class1.class2){背景:灰色;}
有一个
还有一个
两者都有

有任何其他内容
您可以为具有这两个类之一的元素提供灰色背景,为具有这两个类的元素提供红色背景

div.class1.class2{背景:红色;}
div.class1,div.class2{背景:灰色;}
有一个
还有一个
两者都有
是否还有其他内容
您可以将
:not()
选择器与类结合使用,如下图所示。然后它将针对任何没有class2的类

div.class1.class2{背景:红色;}
div.class1:not(.class2){背景:灰色;}
div.class2:not(.class1){背景:灰色;}
有一个
还有一个
两者都有

还有什么
您可以在CSS中组合许多:而不是选择器

div.class1.class2{
背景:红色;
}
div:not(.class1):not(.class2){
背景:灰色;
}
有一个
还有一个
两者都有

还有什么吗
是的,我可以。我用一种经验主义的方式问,请猜我想做的事情比在两个div上涂上一种颜色更复杂。我简化了我的真实案例,使我的问题更容易理解。这个问题是为了得到一个简单的方式来声明“我不想要两者。class1.class2”。你让这里变得非常复杂xD。@Baptiste就是这样做的。这并不是“真的很复杂”。你的答案是可行的,但是-1-@Swaroop-Deval让它变得更简单了,-2-问题是只在一行中声明.class1和.class2的样式。
div.class1:not(.class2),div.class2:not(.class1){background:grey;}
他为一个类定义了CSS(好的,两个,但是一个规则可以有任意多个选择器)这是基本的CSS,非常棒。这完全取决于你想要实现什么。如果你想用class1而不是class2来设计元素的样式,那么我的解决方案会更准确。这取决于你的用例。你没有说
.class3
将接收什么颜色。它是否也应该是灰色的,因为它不是class1和class22或者它不会收到任何颜色,因为它不是class1和class2两个类?问题是“如何在一次性声明中进行声明”。当然,我可以声明div.class1,div.class2{…},但那不会很有趣。如果我添加更多的类会怎么样。请明确你到底在做什么,以便我们能够提供好的答案。我忘了说我写的内容应该设置。逻辑上,第3类也是灰色的!我建议在这里让我们看一看你的真实案例。只需看问题,删除
:不是(.class1.class2)
将解决此问题