2015-11-11 17 views
5

これはおそらく本当に愚かな質問ですが、私はセレクタをCSSで動作させることができません。私は "nocolor"と呼ばれるクラスを持っていない限り、私のページのすべてのテキストを色付けしたい。CSS:セレクタが動作しない

*:not(.nocolor) { 
 
    color: #f00; 
 
}
<h2>Hello</h2> 
 
<h2 class="nocolor">Hello</h2>

+0

私は本当になぜこれが当てはまるのか知りたいです。私がテストしたすべてのブラウザは同じ動作をしていました。私はそれがどこかのスペックになければならないと思います。 –

答えて

3

私はこの行動に驚いたが*セレクタがはそうあなたが親への応用のために見ているすべてに適用された:ここで私は、問題が表示されない、コードです要素も同様です(bodyやhtmlタグ自体のように)。

あなたはそうのように、セレクタにbodyを追加することによって、それを修正することができます:

body *:not(.nocolor) { 
    color: red; 
} 
+0

それは、ありがとう! –

+1

'* {color:#000;/*または何でも* /} '' *:not() 'セレクタも動作します。 –

+0

内部のすべての子に非セレクタを適用することは可能ですか? nocolorクラスでdivにあるpタグの色を変更したい場合、それは動作しません –

2

あなたのセレクタはそうのように記述する必要があります。

:not(.nocolor) { 
    color: #f00; 
} 

は「*」を削除し、これが選択されますすべてページにあります。

はこちらのドキュメントを参照してください:MDN

2

*.nocolorクラスを持っていないbodyを含むすべての要素に適用されるためです。