home
twitter
ページトップへ
目次
  • 擬似クラスの「:not()」を使うと何ができる?
  • 擬似クラスの「:not()」は、否定擬似クラス (negation pseudo-class) と呼ばれることもある
  • 擬似クラスの「:not()」の使い方!
  • 擬似クラスの「:not()」の基本的な使い方!
  • 引数には「1つのセレクター」か「セレクターリスト」を取る
  • 引数に「擬似要素」は使えない
  • 擬似クラスの「:not()」の使用例!
  • 否定条件の追加!
  • 無意味な例!
  • 「詳細度」について!
  • 擬似クラスの「:not()」を使う上での注意点!
  • 「:not()」を安全に使うには!
  • 参考リンク。
  • あわせて読みたい記事。
  • まとめ
about
categories
page
archive
皇帝ペンギンブログ

2024/05/02 (更新日:2024/07/11)

【CSS】擬似クラスの「:not()」の使い方!【分かりやすい】

Categories > CSSのセレクター編
こんばんは!初めましての方は初めまして!
しゅーた(@chibasyuta)です!

この記事ではCSSの擬似クラスの「:not()」の使い方について解説します。

擬似クラスの「:not()」って何??

このような方が対象です。

この記事の内容!

  • 擬似クラスの「:not()」を使うと何ができるのか?
  • 擬似クラスの「:not()」の使い方
また、下の動画でも擬似クラスの「:not()」の使い方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは内容へ入ります!

目次
非表示
  • 擬似クラスの「:not()」を使うと何ができる?
  • 擬似クラスの「:not()」は、否定擬似クラス (negation pseudo-class) と呼ばれることもある
  • 擬似クラスの「:not()」の使い方!
  • 擬似クラスの「:not()」の基本的な使い方!
  • 引数には「1つのセレクター」か「セレクターリスト」を取る
  • 引数に「擬似要素」は使えない
  • 擬似クラスの「:not()」の使用例!
  • 否定条件の追加!
  • 無意味な例!
  • 「詳細度」について!
  • 擬似クラスの「:not()」を使う上での注意点!
  • 「:not()」を安全に使うには!
  • 参考リンク。
  • あわせて読みたい記事。
  • まとめ

擬似クラスの「:not()」を使うと何ができる?

擬似クラスの「:not()」を使うと、「特定の要素以外の要素」を選択することができます。
ふむふむ。
例えば?
:not( p ) {
    padding: 0;
}

このように書くと、「p要素以外」の全ての要素にスタイルを当てることができます!

擬似クラスの「:not()」は、否定擬似クラス (negation pseudo-class) と呼ばれることもある

「特定の要素が選択されない」ようにするタイプのセレクターなので、否定擬似クラス (negation pseudo-class) と呼ばれることもあるようです。

擬似クラスの「:not()」の使い方!

擬似クラスの「:not()」の使い方について詳しくまとめますね!

擬似クラスの「:not()」の基本的な使い方!

擬似クラスの「:not()」の基本的な使い方!

<p>「p要素」です。</p>

<p class="red">「red」というクラスつきの「p要素」です。</p>

<div>「div要素」です。</div>

<div class="green">「green」というクラスつきの「div要素」です。</div>
p:not( .red ) {
    color: skyblue;
}

div:not( .green ) {
    color: pink;
}
擬似クラスの「:not()」を使うと()の中に書いたセレクターに一致しない全ての要素を選択することができます。

上の例だと、引数に「.red 」を取るので、「.red」というクラスを持たない全ての「p要素」を選択するセレクターになり、

引数に「.green」の方は、「.green」というクラスを持たない全ての「div要素」を選択するセレクターになります。

「特定の要素が選択されない」ようにすることができるんだね!!

引数には「1つのセレクター」か「セレクターリスト」を取る

p:not( .red, .green, .blue ) {
    border: 2px solid #333;
}

擬似クラスの「:not()」は引数に「1つのセレクター」か「セレクターリスト」を取ります。

「セレクターリスト」というのは、複数のセレクターを「,」カンマ区切りで書いたものです。

上の例だと、「.red」「.green」「.blue」のクラスがついてない全ての「p要素」を選択しています。

このように「全ての引数に取るセレクター」に一致しない要素が選択できます。

「セレクターリスト」とは何か?

「セレクターリスト」については下記の記事で丁寧に解説しているので、もし「セレクターリスト」について詳しく知りたい方は下記の記事をお読みください!

【CSS】「セレクターリスト」について解説!【注意点についても】

関連記事

引数に「擬似要素」は使えない

:not( p::before ) {   ×これダメ
    background-color: skyblue;
}

擬似クラスの「:not()」の引数に「擬似要素」は含めることができません。

このようなルールがあるので注意してください。

擬似クラスの「:not()」の使用例!

擬似クラスの「:not()」の使用例を少し書いてみようと思います!
わーい!

否定条件の追加!

p:not( .hoge ):not( .foo ) {
    padding: 20px;
} 

このように「:not()」を2つ使うことで、否定する条件の追加をすることができます!

このように書くことも可能!
p:not( .hoge, .foo ) {
    padding: 20px;
}

このように「セレクターリスト」を使っても同じことができます!

無意味な例!

:not( * ) {
    margin: 0;
}

このように書くと「全ての要素」以外の要素にスタイルを当てる、というセレクターですが意味がありません。

「詳細度」について!

擬似クラスの「:not()」の詳細度は、引数のセレクターリストの中で最も詳細度が高いセレクターの詳細度となります。
例えば!
:not( .hoge, #foo, h1 ) {
    padding: 10px;
}

このようなコードだと「:not()」の詳細度は「#foo」と等しくなります。

なので「1, 0, 0」ですね。「id列, class列, type列」

なぜなら、セレクターリストの中で最も詳細度が高いものは「#foo」だからそれが使われるためです。

擬似クラスの「:not()」を使う上での注意点!

擬似クラスの「:not()」の引数に「無効なセレクター」が含まれていたら、「:not()」自体が無効になります。
なるほど。

例えば擬似クラスの「:blank」は実験的な擬似クラスなので、まだサポートしているブラウザが少ないです。

そのようなサポート外の擬似クラスを使うと、ブラウザはその部分の解釈に失敗してしまいます。

そのようなかいしゃくに失敗する無効なセレクターとなる可能性があるものと一緒に使う場合は、「:not()」自体が無効になることがあるので注意が必要です。

「:not()」を安全に使うには!

:not( :is( .hoge, #foo, h1, :blank ) ) {
    background-color: aquamarine;
}

「:not()」を安全に使うには、擬似クラスの「:is()」や「:where()」を使えばOKです!

「:is()」や「:where()」は引数にセレクターリストを取り、その中のどれかが無効なセレクターだったとしても、他のものは影響なく使うことができる、というものです。

なのでそんな「:is()」や「:where()」を使うことで、「:not()」を安全に使うことができます。

「:is()」と「:where()」について!

擬似クラスの「:is()」と「:where()」については下記の記事で丁寧に解説しているので、もしこれらについて詳しく知りたい方は下記の記事を読んでみてください!

【CSS】疑似クラスの「:is()」の使い方!【分かりやすい】

関連記事

【CSS】疑似クラスの「:where()」の使い方!【分かりやすい】

関連記事

参考リンク。

仕様書。
https://drafts.csswg.org/selectors/#negation

MDN。
https://developer.mozilla.org/ja/docs/Web/CSS/:not

あわせて読みたい記事。

大学生が夏休みにweb制作で13万円稼ぐまでにやったこと。【経験談】

関連記事

まとめ

擬似クラスの「:not()」を使うと、「特定の要素以外の要素」を選択することができる。

擬似クラスの「:not()」は、否定擬似クラス (negation pseudo-class) と呼ばれることもある。

引数には「1つのセレクター」か「セレクターリスト」を取る。

引数に「擬似要素」は使えない。

擬似クラスの「:not()」の詳細度は、引数のセレクターリストの中で最も詳細度が高いセレクターの詳細度となる。

擬似クラスの「:not()」の引数に「無効なセレクター」が含まれていたら、「:not()」自体が無効になる。

「:not()」を安全に使うには、「:is()」か「:where()」を使えばOK!

こんな感じですかね!

この記事が気に入った方は僕のTwitter(@chibasyuta)のフォローもお願いします!

また、下の動画でも擬似クラスの「:not()」の使い方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それではこんな感じでこの記事を終わります!

ではまた!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.