CSSを利用していて、特定状態の要素にだけスタイルを適用したいといったケースがでてきます。疑似クラスを利用すれば、思い通りにスタイルを適用することができます。ここでは、利用頻度の高い疑似クラスの使い方について紹介します。
目次
構造擬似クラス
:nth-of-type系|特定兄弟要素の位置
クラス | 対象要素 |
---|---|
:nth-of-type() | 兄弟要素のグループの中で、最初から数えてn番目の要素 |
:nth-last-of-type() | 兄弟要素のグループの中で、最後から数えてn番目の要素 |
:first-of-type | 兄弟要素のグループの中で、最初の要素 |
:last-of-type | 兄弟要素のグループの中で、最後の要素 |
See the Pen nth-of-type by waku-waku (@raku-raku) on CodePen.
上記例でいうと、兄弟要素は、 dl要素
内の dt要素のみ
が対象になります。
:nth-child系|全兄弟要素の位置
クラス | 対象要素 |
---|---|
:nth-child() | 兄弟要素のグループの中で、最初から数えてn番目の要素 |
:nth-last-child() | 兄弟要素のグループの中で、最後から数えてn番目の要素 |
:first-child | 兄弟要素のグループの中で、最初の要素 |
:last-child | 兄弟要素のグループの中で、最後の要素 |
See the Pen nth-child by waku-waku (@raku-raku) on CodePen.
上記例でいうと、兄弟要素は、 dl要素
内の dt要素とdd要素
が対象になります。last-child
は dd
になるので 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クラス以外の要素
が対象になります。