2013-03-01 45 views
1

我有一个元素可以说,它可能有包含.foo或的.bar或两项或不作为类:测试两个班没有用更少的CSS存在

<div class="foo bar">green</div> 
<div class="foo">green</div> 
<div class="bar">green</div> 
<div class="something-else">red</div> 

如何测试该元素没有按没有任何一堂课。

我想这样的事情,但预期它不工作:

div { 
    background: green; 
    &:not(.foo) and &:not(.bar) { 
    background: red; 
    } 
} 

我没有看到很多例子使用较少,而不是(),只能在自己的文档1。

+1

':not()'是常规的CSS,而不是LESS特有的。 – 2013-03-01 01:39:57

回答

2

要说在CSS选择多个条件,你需要把它们连在一起:div:not(.foo):not(.bar)

div { 
    background: green; 
    &:not(.foo):not(.bar) { 
    background: red; 
    } 
} 
+0

多数民众赞成我所期待的,谢谢。 – chovy 2013-03-01 01:44:56

0

总是有纯CSS的替代品。

div { background: red; } 
div.foo, div.bar { background: green; } 
+0

该代码是一个更大的规则集的一部分,并使用&:not(.foo) - 我只需要做相当于不((.foo或.bar) – chovy 2013-03-01 01:35:07

0

我能够通过嵌套2 &做到这一点:没有()规则,但我不确定这是最好的方法。

div { 
    background: green; 
    &:not(.foo) { 
    &:not(.bar) { 
     background: red; 
    } 
    } 
} 
相关问题