Skip to content

CSSセレクター 解説

よく使われるCSSセレクターを系統別にまとめました。基本、結合子、擬似クラス、擬似要素、属性セレクター。各行ではセレクターとワンラインの例をペアにします。

セレクターは、ルールを適用する要素を選びます。複数のルールが一致したときは詳細度で勝敗が決まります。インラインはidに、idはclassに、classはタイプに勝ちます。セレクターは右から左へ読みます。ブラウザーは最初に最右の部分を照合し、それから結合子をさかのぼります。以下の系統は、あなたが書くほぼすべてをカバーします。

リファレンステーブル · 53 項目
53 of 53 rows
基本
そのタグのすべての要素。button { }
そのクラスを持つ要素。.active { }
そのidを持つ唯一の要素。#header { }
すべての要素。* { box-sizing: border-box; }
文書のルート。グローバルなカスタムプロパティの定番の場所。:root { --gap: 1rem; }
AまたはBに一致する要素(グループ化)。h1, h2, h3 { }
結合子
Aの子孫である任意のB。nav a { }
Aの直接の子であるB。ul > li { }
Aの直後にあるB。親は同じ。h1 + p { }
Aの後ろに続くすべてのB。親は同じ。h1 ~ p { }
擬似クラス(状態)
ポインターが乗っている間の要素。a:hover { }
キーボードフォーカスを持つ要素。input:focus { }
親の最初の子である要素。li:first-child { }
n番目の子。2nのような式も取れる。tr:nth-child(2n) { }
内側のセレクターのどれにも一致しない要素。Selectors 4以降はリストも取れる。li:not(:first-child, .skip) { }
チェックの入ったチェックボックス、ラジオ、またはオプション。input:checked { }
無効化された入力欄またはボタン。button:disabled { }
内側のセレクターに一致するものを含む親。li:has(ul) { }
リスト内の任意のセレクター。詳細度はリスト内で最も高いもの。:is(ol, ul) li { }
:is()と同じだが、詳細度はゼロ。:where(ol, ul) li { }
リングを表示すべきフォーカス。通常はキーボード由来。a:focus-visible { }
自身または子孫にフォーカスがある要素。form:focus-within { }
親の最後の子である要素。li:last-child { }
兄弟のいない要素。p:only-child { }
同じタグのn番目の兄弟。2nのような式も取れる。p:nth-of-type(2n) { }
同じタグの最初または最後の兄弟。p:first-of-type { }
子もテキストも持たない要素。td:empty { }
未訪問のリンクと訪問済みのリンク。a:visited { }
必須とマークされた入力欄と、任意のままの入力欄。input:required { }
値が検証ルールに合格または不合格となる入力欄。input:invalid { }
ユーザーが編集できない入力欄。input:read-only { }
idがURLのフラグメントに一致する要素。#note:target { }
グループの事前選択されたオプションまたはデフォルトボタン。input:default { }
スクリプトによって不確定状態にされたチェックボックス。input:indeterminate { }
すべての組み込み要素、または登録済みのカスタム要素。my-widget:defined { }
指定された言語の要素。p:lang(fr) { }
擬似要素
要素の前に生成されるコンテンツノード。label::before { content: ""; }
要素の後に生成されるコンテンツノード。code::after { content: ";"; }
テキストブロックの最初の文字。p::first-letter { }
入力欄のプレースホルダーテキスト。input::placeholder { }
テキストブロックの最初の行。p::first-line { }
ユーザーがハイライトしたテキスト。::selection { }
リスト項目のビュレットまたは番号。li::marker { }
全画面要素やダイアログの背後の領域。dialog::backdrop { }
ファイル入力欄の中の参照ボタン。input::file-selector-button { }
ホストが公開したシャドウDOMのパート。my-widget::part(header) { }
属性セレクター
その属性を持つ要素。値は問わない。[required] { }
属性がvalと完全に等しい。[type="submit"] { }
属性がvalで始まる。a[href^="https"] { }
属性がvalで終わる。a[href$=".pdf"] { }
属性がvalを含む。a[href*="login"] { }
valを含む、スペース区切りのリスト。[class~="badge"] { }
値がvalと等しい、またはvalとハイフンに続く形で始まる。[lang|="en"] { }