:not()、:is()、:where()
:not()で要素を除外し、:is()でリスト内のいずれかに一致させ、:where()で詳細度を低く抑えます。
「:not()、:is()、:where()」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
:not() 擬似クラス
:not(selector) は、指定されたセレクターに一致しない要素を選択します。選択を反転させるものです。
<input type="text" placeholder="Text input (styled)" />
<input type="submit" value="Submit (unstyled)" />
複数の引数を使った :not()
モダン CSS では、:not() 内に複数の引数を指定できます。列挙したセレクターのいずれにも一致しない要素に一致します:
<a href="#">Normal link</a> <a href="#" class="active">Active link</a> <a href="#" class="disabled">Disabled link</a>
:not() の詳細度
:not() の詳細度は、最も詳細度の高い引数の詳細度になります。:not(.active) の詳細度はクラスレベル(0,1,0)です。
:is() 擬似クラス
:is() は、リスト内のいずれかのセレクターに一致する要素に一致します。グループ化を簡潔にし、繰り返しを減らせます。
<header><h1>Site Title</h1><h2>Subtitle</h2><h3>Tagline</h3></header>
:is() の詳細度
:is() は、最も詳細度の高い引数の詳細度を使用します。リストに ID セレクターが含まれている場合、ルール全体が ID の詳細度になります。
<div id="header"><h2>Header H2 (crimson via ID)</h2></div>
<div class="card"><h2>Card H2 (crimson via class)</h2></div>
:is() の寛容な解析
:is() は寛容なセレクター解析を使用します。リスト内のいずれかのセレクターが無効でも、そのセレクターは暗黙に無視され、残りは適用されます。通常のカンマ区切りセレクターでは、1つでも無効なものがあると全体が失敗します。
:where() 擬似クラス
:where() は :is() とまったく同じように機能しますが、詳細度がゼロです。上書きしやすくするべきユーティリティクラスやリセットスタイル向けに設計されています。
<h1>No top margin</h1><h2>No top margin</h2><h3>No top margin</h3>
リセットでの :where()
:where() は、詳細度の競合で決して優先されるべきではない CSS リセットやベーススタイルに最適です:
<ul><li>Item A</li><li>Item B</li></ul>
<ol><li>Step 1</li><li>Step 2</li></ol>
詳細度の比較
詳細度の動作のまとめ:
:is()— 引数の中で最も高い詳細度:where()— 常に詳細度ゼロ:not()— 引数の中で最も高い詳細度
:is() と :not() の連結
これらを組み合わせると、正確で読みやすいセレクターを作成できます:
<nav class="nav"><a href="#">Link</a> <button>Button</button> <a href="#" class="disabled">Disabled Link</a></nav>
ブラウザーの対応状況
:is() と :where() は、すべてのモダンブラウザーでサポートされています。複数の引数を持つ :not() もモダンブラウザーでサポートされています。IE11 のサポートが必要なプロジェクトでは使用を避けてください。
確認問題
まとめ
:not() は選択を反転させ、複数の引数を受け取れます。:is() はリスト内のいずれかに一致し、そのリスト内で最も高い詳細度を持ちます。:where() も同じように機能しますが、詳細度はゼロです。リセットに最適です。3つとも寛容な解析を使用し、無効なセレクターは暗黙に無視します。
よくある質問
「:not()、:is()、:where()」レッスンは無料ですか?
はい。「:not()、:is()、:where()」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「:not()、:is()、:where()」で何を学びますか?
:not()で要素を除外し、:is()でリスト内のいずれかに一致させ、:where()で詳細度を低く抑えます。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「:not()、:is()、:where()」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- :hover :focus :activeと:visited
- :nth-childと:nth-of-type
- :not()、:is()、:where()
- :checked、:disabledとフォーム状態の疑似クラス