:nth-child() of S syntax
:nth-child(An+B of S) 構文は、セレクター S にマッチする要素だけをカウント対象として nth-child を計算する。従来は全兄弟を数えるしかなかったが、フィルタリングされた要素群のみを対象にできるようになった。
概要
:nth-child(An+B of S) 構文は、セレクター S にマッチする要素だけをカウント対象として nth-child を計算する。従来は全兄弟を数えるしかなかったが、フィルタリングされた要素群のみを対象にできるようになった。
対応ブラウザ
デスクトップ
Chrome 111+
Edge 111+
Safari 9+
Firefox 113+
モバイル
Chrome Android 111+
Safari iOS 9+
Firefox Android 113+
基本構文
CSS
/* .visible クラスの要素だけを数えて偶数番目にスタイル */
li:nth-child(even of .visible) {
background: #f3f4f6;
}
/* テーブルの .active 行だけで縞模様 */
tr:nth-child(odd of .active) {
background: #eff6ff;
} 実務での使いどころ
-
フィルタリング済みリストの縞模様
検索やフィルターで表示中の行だけを対象に交互背景色を適用。
-
条件付きインデックス選択
特定クラスの要素だけを数えて最初の N 件にスタイルを適用。
注意点
- of S 構文は比較的新しいため、古いブラウザではフォールバックが必要。
- フィルタリング対象が動的に変わる場合、JSとの連携を検討する。
アクセシビリティ
- 縞模様のテーブルでは色のコントラスト比を十分に確保する。