⇒ その1 基本セレクタ
⇒ その2 グループ化 / 結合子
⇒ その3 疑似クラス / 疑似要素(今回)
疑似クラスと疑似要素の違いは以下の通りです。
疑似クラス ⇒ 「:link」のようにコロン1つ
要素が特定の状態である場合にスタイルを適用させる
a:link { スタイルプロパティ }
/* リンク先が未訪問の <a> 要素のスタイルを指定 */
疑似要素 ⇒ 「::first-line」のようにコロン2つ
要素の一部に対してスタイルを適用させる
p::first-line { スタイルプロパティ }
/* <p> 要素の1行目のスタイルを指定 */
以下、疑似クラスの機能ごと、及び疑似要素を表にまとめましたが、基本的に CSS レベル 1 ~ 3 のみです。
(:read-only と :read-write はレベル 4 ですが、IE 以外のメジャーの最新のブラウザで実装されているので含めました。)
疑似クラス
リンク関連
構文 | 説明 |
---|---|
:link | リンク先が未訪問。<a>, <area>, <link>など、href 属性を持つ要素を選択。 |
:visited | リンク先が訪問済。<a>, <area>, <link>など、href 属性を持つ要素を選択。 |
:hover | カーソルをその要素の上に置いているが、まだクリックにしていない状態。 「:link」「:visited」の後、「:active」の前に記述。 |
:active | クリック中。<a> 及び <bottun> で使われる。 「:link」「:visited」「:hover」の後に記述。 |
:target | #のついたリンクをクリックしたとき、対応するid値を持つ要素に適用。 |
兄弟要素の位置関連
構文 | 説明 |
---|---|
:nth-child(n) :nth-child(An + B) |
兄弟グループの中で n 番目の要素を選択。順番を数える際、指定以外の要素も含めてカウント。 例):nth-child(4) ⇒ 4番目 :nth-child(4n) ⇒ 3つ置き :nth-child(2n+1) ⇒ 奇数 :nth-child(2n) ⇒ 偶数 :nth-child(odd) ⇒ 奇数 :nth-child(even) ⇒ 偶数 |
:nth-last-child(n) :nth-last-child(An + B) |
兄弟グループの中で後ろから n 番目の要素を選択。(順番を数える際、指定以外の要素も含めてカウント。) 例)引数の取り方は、:nth-child と同じ。 |
:nth-of-type(n) :nth-of-type(An + B) |
兄弟グループの中で n 番目の要素を選択。(順番を数える際、指定した要素のみカウント。) 例)引数の取り方は、:nth-child と同じ。 |
:nth-last-of-child | 兄弟グループの中で後ろから n 番目の要素を選択。(順番を数える際、指定した要素のみカウント。) 例)引数の取り方は、:nth-child と同じ。 |
:first-child | 兄弟グループの中で最初の要素。(指定以外の要素も含めてカウント。) |
:last-child | 兄弟グループの中で最後の要素。(指定以外の要素も含めてカウント。) |
:first-of-type | 兄弟要素のグループの中でその種類の最初の要素。(指定以外の要素を含めない。) |
:last-of-type | 兄弟要素のグループの中でその種類の最後の要素。(指定以外の要素を含めない。) |
:only-child | 兄弟要素がない要素。 |
:only-of-type | 同じ型の兄弟要素がない要素 |
フォーム関連
構文 | 説明 |
---|---|
:enabled | 有効な要素。 |
:disabled | 無効な要素。<input> で「disabled=”disabled”」が選択されているなど。 |
:checked | チェックされている状態。<input type=”radio”>, <input type=”checkbox”>, <option> で利用。 |
:indeterminate | チェックが不確定な状態。<input type=”radio”> でフォーム内の同じ name のラジオボタンが未選択な場合など。 |
:default | 初期値の指定がある要素。<button>, <input type=”radio”>, <input type=”checkbox”>, <option> で利用。 |
:required | required 属性の指定がある要素。<input>, <select>, <textarea> で利用。 |
:optional | required 属性の指定がない要素。<input>, <select>, <textarea> で利用。 |
:valid | 内容の検証に成功した要素。<input> やその他の <form> で利用。 |
:invalid | 内容の検証に失敗した要素。<input> やその他の <form> で利用。 |
:in-range | 入力値が min および max 属性による制限範囲内にある状態。<input> で利用。 |
:out-of-range | 入力値が min および max 属性による制限範囲外にある状態。<input> で利用。 |
:read-only | ユーザが編集できない要素。<input> で「readonly」属性が指定されている場合。Firefox では要プレフィックス。 |
:read-write | ユーザが編集できる要素。Firefox では要プレフィックス。 |
:forcus | フォーカスを持つ要素が選択されている状態。フォームなどで利用。 |
:forcus-within | フォーカスを持つ要素が選択されている時、フォーカスを含む要素を選択。フォームなどで利用。 |
その他
構文 | 説明 |
---|---|
:root | ルート要素を選択。 HTML では、:root は <html> 。 |
:empty | 空の要素。(コメントや処理指示は空として扱われる。改行、インデント、スペースなどは空として扱われない。) |
:lang() | 定義された言語を持つ要素。例)p:lang(ja) ⇒ 日本語が選択された <p>。 |
:not() | 選択されたセレクタに一致しない要素。例)p:not(.demo) ⇒ class=”demo” が指定されていない <p>。 |
:fullscreen | 全画面表示の状態。 |
疑似要素
構文 | 説明 |
---|---|
::first-line | ブロックレベル要素の最初の行に適用。 |
::first-letter | ブロックレベル要素の最初の文字に適用。(最初の文字より前に画像などの他のコンテンツがない場合。) |
::before | 選択した要素の最初の子要素としてコンテンツを作成。(その要素の直前に表示される。) |
::after | 選択した要素の最後の子要素としてコンテンツを作成。(その要素の直後に表示される。) |
::placeholder | <input> または <textarea> のプレイスホルダー文字列に適用。 |
::selection | 選択された文字列、画像などに適用。 |