>_DEVELOP

ヘッダー画像1
ヘッダー画像2
ヘッダー画像3

$ sudo learn –daily –append >> ~/brain/tech.log

CSS セレクターの紹介(is,not,has,where)

人によって書き方が異なり負債化するためか、あまり下記のような指定を実際のホームページのソースなどで見かけることはありませんが、自分で作る時には非常に有用なため、書き残しておこうと思います。

:is() / :not() / :has() / :where()

CSSの最新セレクター × 英語の意味で理解する


🔹 :is()「〜であるもの」

英語感:

“is” = 「〜である」

CSS用途:

  • 複数セレクターを一括指定したいときに使う
  • ネストの中で親の共通部分だけ書きたいときにも便利

サンプル:

📌 h1〜h3すべてに太字を適用


🔹 :not()「〜でないもの」

英語感:

“not” = 「〜でない」

CSS用途:

  • 指定した条件以外の要素にスタイルを当てたいとき
  • 除外セレクター

サンプル:

📌 .activeついてない liだけ半透明にする


🔹 :has()「〜を持っているもの」

英語感:

“has” = 「〜を持つ」「〜が含まれている」

CSS用途:

  • 子要素の有無で親要素のスタイルを変えたい
  • かつてはJSが必要だった構造的な指定が可能に

サンプル:

📌 .card の中に img がある場合だけ、余白を追加


🔹 :where()「〜において(どれでも)」

英語感:

“where” = 「〜において」「どれでも(条件に合うものなら)」

CSS用途:

  • :is()と同じく複数セレクターをまとめられる
  • ただし!CSSの優先度(specificity)をゼロにする

サンプル:

📌 共通要素にリセットスタイルを適用するのに最適
👉 優先度が低いので、あとから他のスタイルで簡単に上書きできる


✅ まとめ:英語 × CSS の対応表

セレクター英語の意味主な使いどころ優先度サンプル例
:is()「〜である」複数のセレクターをまとめたい高(通常通り):is(h1, h2)
:not()「〜でない」除外したい条件があるとき高(通常通り)li:not(.active)
:has()「〜を持っている」子要素の有無に応じて親を変えたい高(通常通り).box:has(img)
:where()「どれでも、において」共通スタイルのリセットや軽量指定低(0):where(nav, footer)

✨ こんな覚え方もあり!

  • :is() →「これらであるならスタイルする」
  • :not() →「これらでないならスタイルする」
  • :has() →「中にこれがあるならスタイルする」
  • :where() →「これらどれでもOK(でも優先度低い)


:is()系に似たCSS疑似クラス・セレクター一覧

英語的に読める / 条件文っぽいCSSセレクターを中心に整理します。


🔷 条件っぽい意味のセレクター

セレクター読み感 / 英語的意味用途・説明
:is()「〜である」複数のセレクターをまとめる
:not()「〜でない」指定したものを除外する
:has()「〜を含んでいる」子要素を見て親にスタイルを適用
:where()「どれでも(条件付き)」:is()と同じ構文+優先度ゼロ

🔷 状態を表すセレクター(状態動詞系)

セレクター英語的意味説明
:hover「ホバーしている」マウスカーソルが乗っているとき
:focus「フォーカスされている」入力や選択状態にあるとき
:checked「チェックされている」チェックボックスなど
:disabled「無効である」ボタンや入力など
:enabled「有効である」↑の逆
:required「必須である」フォーム要素など
:optional「任意である」フォーム要素など
:read-only「読み取り専用である」フォームなど
:read-write「編集可能である」↑の逆

📌 これらは「〜である」という 状態判定 セレクター。:is() に近いニュアンスを持つ。


🔷 構造に関するセレクター(関係詞っぽい)

セレクター英語的意味 / 説明
:first-child最初の子である
:last-child最後の子である
:nth-child(n)n番目の子である
:nth-of-type(n)特定タグのn番目
:only-child唯一の子である
:empty中身が空である

📌 :has() ほど強力ではないが、「構造ベースの条件」として組み合わせに使える。


🔷 HTML属性に関する疑似クラス(英語的に意味をもつ)

セレクター英語感説明
[attr]「属性を持つ」input[required] など
[attr=value]「属性が=である」a[target=_blank] など

👉 :has() 的な「〜を持ってる」ニュアンスに近い使い方ができる。


✅ 英語っぽく読める疑似クラスまとめ

カテゴリセレクター例英語的意味
条件系:is(), :not(), :has(), :where()〜である/ない/含む/任意
状態系:hover, :checked, :disabledなど〜している/された
構造系:first-child, :only-child最初・唯一など
属性セレクター[attr], [attr=value]〜という属性を持つ

✅ 似た書き方を組み合わせると?

👉 ホバー or フォーカスされてて、無効でないボタンにだけ適用する


📝 まとめ

CSSセレクターはただのルールじゃなく、英語的に読める「条件文」みたいなものです。
:is() で「〜である」、:not() で「〜でない」、:has() で「〜を持つ」など、意味が直感的に伝わるので、うまく使えばCSSがまるで会話文のように書けます。