【CSSセレクタ】E:not(s)
『セレクタ:not(セレクタ)』で、特定の要素以外の要素や、特定の属性や値を持たない要素に適用できます。IE8以下では動きません。
『:not()』の記述方法は『()』の中に否定したいセレクタを記述すればOKです。全ての要素の中から特定のセレクタを除外したい場合は『*:not(セレクタ)』と記述すればOKで、『*』は省略できますので『:not(セレクタ)』と記述してもOKです。『()』の中に属性セレクタを入れることもできます。ただし、単純セレクタ(『 』や『>』や『+』などを使用した子孫要素や兄弟要素を特定するセレクタ)以外のセレクタは入れることができませんのでご注意ください。
『:not()』は複数続けて記述することが可能なので『:not(セレクタ1):not(セレクタ2)』といったように複数の条件付けをすることが可能です。
尚、全ての要素に対して『:not()』を記述した場合(『:not()』もしくは『*:not()』)に、一部のブラウザでその指定が反映されないバグが確認されていますのでご注意ください。
サンプルコード
p:not(.hoge) { color: blue;} /* p要素の中から『hoge』というクラス名を持たない要素を赤字にします。 */
p:not([class]) { font-size: 20px;} /* p要素の中から『class』属性を持たない要素の文字サイズを20pxにします。 */
div:not([class]):not([id]) { background-color: yellow;} /* div要素の中からクラス名とid名を持っていない要素の背景を黄色にします。 */
div:not(p span) { background-color: blue;} /* 『()』の中には単純セレクタしか入れられませんのでこの指定は反映されません。 */
ブラウザでの表示結果
p:not(.hoge) { color: blue;} /* p要素の中から『hoge』というクラス名を持たない要素を赤字にします。 */
p:not([class]) { font-size: 20px;} /* p要素の中から『class』属性を持たない要素の文字サイズを20pxにします。 */
div:not([class]):not([id]) { background-color: yellow;} /* div要素の中からクラス名とid名を持っていない要素の背景を黄色にします。 */
div:not(p span) { background-color: blue;} /* 『()』の中には単純セレクタしか入れられませんのでこの指定は反映されません。 */
<p>ここはp要素です。</p> <p class="hoge">ここはp要素です。class名に『hoge』と指定しています。</p> <div>ここはdiv要素です。</div> <div class="miku">ここはdiv要素です。class名に『miku』と指定しています。</div> <div id="miku">ここはdiv要素です。id名に『miku』と指定しています。</div>
対応ブラウザ
デスクトップ
2 以前 ×全バージョンで対応しています
8 ×
7 ×
6 ×
8 以前 ×モバイル
1 以前 ×
Android Browser
2 以降 ○デスクトップ版と同等の対応です
デスクトップ版と同等の対応です
※ バージョン情報は MDN に基づいています。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。