疑似クラス(nth-of-type, hover, notなど)の使い方

CSSを利用していて、特定状態の要素にだけスタイルを適用したいといったケースがでてきます。疑似クラスを利用すれば、思い通りにスタイルを適用することができます。ここでは、利用頻度の高い疑似クラスの使い方について紹介します。

構造擬似クラス

:nth-of-type系|特定兄弟要素の位置

クラス 対象要素
:nth-of-type() 兄弟要素のグループの中で、最初から数えてn番目の要素
:nth-last-of-type() 兄弟要素のグループの中で、最後から数えてn番目の要素
:first-of-type 兄弟要素のグループの中で、最初の要素
:last-of-type 兄弟要素のグループの中で、最後の要素

上記例でいうと、兄弟要素は、 dl要素 内の dt要素のみ が対象になります。

:nth-child系|全兄弟要素の位置

クラス 対象要素
:nth-child() 兄弟要素のグループの中で、最初から数えてn番目の要素
:nth-last-child() 兄弟要素のグループの中で、最後から数えてn番目の要素
:first-child 兄弟要素のグループの中で、最初の要素
:last-child 兄弟要素のグループの中で、最後の要素

上記例でいうと、兄弟要素は、 dl要素 内の dt要素とdd要素 が対象になります。
last-childdd になるので color: green; のスタイルは適用されません。

even(偶数) odd(奇数) で位置指定

偶数番目、奇数番目の要素にスタイルを適用したい場合、 even odd を利用すると簡潔に記述できます。

# 偶数番目の要素
div:nth-child(even) {
}

# 奇数番目の要素
div:nth-child(odd) {
}

:empty|中身が空

:empty は、中身が空の要素を対象にします。
例えば、 div:empty と指定した場合、 <div></div> のように中身が無い要素が対象になります。

ダイナミック擬似クラス

クラス 対象要素
:visited リンク先にアクセス済みの要素
:link リンク先に未訪問の要素
:focus フォーカス状態の要素
:hover カーソルを重ねた状態の要素
:active アクティブ状態(ボタンが押された状態)の要素

インプット擬似クラス

クラス 対象要素
:checked ラジオボタン、チェックボックス、オプションボタンで選択中の要素
:enabled / :disabled disabled属性がついてない / disabled属性がついている

その他

:target|URLフラグメントに一致

:target は、 URLフラグメントに一致するIDを持つ要素を対象にします。
例えば、URLが index.html#section4 であれば、 <div id="section4"></div> が対象になります。

:not()|指定条件と不一致

:not() は、条件に一致しない要素を対象にします。
例えば、 :not(.item) と指定した場合、 itemクラス以外の要素 が対象になります。