1

私は要素を持っているので、クラスとして.fooまたは.bar、あるいはその両方、または何も持たない可能性があります。

<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;
  }
}

lessとnot()を使用した例は多くありませんが、ドキュメントには1つしかありません。

4

3 に答える 3

2

CSSセレクターの複数の条件に言及しないようにするには、それらをチェーン化する必要があります。 div:not(.foo):not(.bar)

div {
  background: green;
  &:not(.foo):not(.bar) {
    background: red;
  }
}
于 2013-03-01T01:38:40.313 に答える
0

常に純粋なcssの代替手段があります。

div { background: red; }
div.foo, div.bar { background: green; }
于 2013-03-01T01:32:44.647 に答える
0

2つの&:not()ルールをネストすることでそれを行うことができましたが、これが最善の方法かどうかはわかりません。

div {
  background: green;
  &:not(.foo) {
    &:not(.bar) {
      background: red;
    }
  }
}
于 2013-03-01T01:41:45.190 に答える