2013-03-01 54 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; 
    } 
    } 
} 
相關問題