CSS sibling-index()・sibling-count()ジェネレーターとは
sibling-index()とsibling-count()はCSS関数(Chrome 138+)で、要素のDOM上の兄弟間での位置を公開します。sibling-index()は要素の位置を表す1から始まる整数を返します。sibling-count()は兄弟要素の総数を返します。静的パターンにマッチするnth-childセレクターとは異なり、これらの関数は動的な数値を生成し、calc()内で数値または整数を受け付ける任意のプロパティで使用できます。これにより、ハードコードされたセレクターなしで、スタッガー遅延、交互の色、幅グラデーション、自動レイヤリングが可能になります。
クイックアンサー
sibling-index()は要素の兄弟間での1から始まる位置を返し、sibling-count()は兄弟の総数を返します。calc()内で使用して、DOMの変更に応じて自動的に適応するスタッガー遅延、カラーサイクル、幅グラデーション、位置オフセットを作成できます。nth-childセレクターやJavaScriptは必要ありません。
Last updated: 2026-05-30
制限事項
- sibling-index()とsibling-count()にはChrome 138+が必要です。2026年5月現在、FirefoxとSafariはまだこれらの関数をサポートしていません。
- 関数はDOM順序を返し、視覚的な順序は返しません。CSSフレックスボックスのorderやグリッドプレースメントで並び替えられた要素は、インデックスが視覚的な位置と一致しない場合があります。
- sibling-count()にはdisplay: noneで非表示のものを含む、すべてのDOM兄弟が含まれます。要素を視覚的に非表示にしても兄弟カウントから除外しない場合は、visibility: hiddenを使用してください。
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
使い方
- 位置依存にしたいプロパティを選択します。animation-delay、background-color、width、opacity、z-indexなどが対象です。
- 兄弟関数を選択します。sibling-index()は要素ごとの位置指定、sibling-count()はコンテナ認識のスケーリングに使用します。
- calc()を使用して式を構築し、生のインデックスを目的の値範囲に変換します。
- 生成されたCSSをコピーして、位置依存のスタイリングが必要な子要素に適用します。
主な用途
- 各アイテムが兄弟間での位置に基づいて順次アニメーションするスタッガーアニメーション遅延を作成します。
- 要素インデックスに基づいてパレットを自動的に巡回するカラーサイクルを構築します。
- 手動のnth-childルールなしで兄弟要素間で幅または高さのグラデーションを生成します。