--- title: ':nth-child()' slug: 'Web/CSS/:nth-child' tags: - CSS - Reference - Selectors - Web - セレクター - 擬似クラス translation_of: 'Web/CSS/:nth-child' ---
CSS の :nth-child() 擬似クラスは、兄弟要素のグループの中での位置に基づいて選択します。
/* リスト中の2番目の <li> 要素を選択 */
li:nth-child(2) {
color: lime;
}
/* 兄弟要素の中で3つおきに
要素を選択 */
:nth-child(4n) {
color: lime;
}
nth-child 擬似クラスは、引数を1つ指定し、リストの子要素を要素の位置で選択するためのパターンを記述します。要素の位置は1から始まります。
oddeven<An+B>An+B で定義された数値のパターンと一致する要素を表します。A は整数の刻み値です。B は整数の加算値です。n はすべての正の整数で、0から始まります。tr:nth-child(odd) 又は tr:nth-child(2n+1)tr:nth-child(even) または tr:nth-child(2n):nth-child(7):nth-child(5n)n が0から始まるのに対して添字は1から始まるので、一致するものはないという結果になります。これは最初は奇妙に見えるかもしれませんが、次の例のように B の部分が >0 となる場合にもっとよく分かるでしょう。:nth-child(n+7):nth-child(3n+4):nth-child(-n+3)p:nth-child(n)<p> 要素を表します。これは単純な p セレクターと同じ要素を選択します (但し、具体度はより高くなります)。p:nth-child(1) または p:nth-child(0n+1)<p> 要素すべてを表します。これは {{cssxref(":first-child")}} セレクターと同じです (具体度も同じです)。p:nth-child(n+8):nth-child(-n+15)<p> 要素を表します。<h3><code>span:nth-child(2n+1)</code>, WITHOUT an <code><em></code> among the child elements.</h3> <p>Children 1, 3, 5, and 7 are selected.</p> <div class="first"> <span>Span 1!</span> <span>Span 2</span> <span>Span 3!</span> <span>Span 4</span> <span>Span 5!</span> <span>Span 6</span> <span>Span 7!</span> </div> <br> <h3><code>span:nth-child(2n+1)</code>, WITH an <code><em></code> among the child elements.</h3> <p>Children 1, 5, and 7 are selected.<br> 3 is used in the counting because it is a child, but it isn't selected because it isn't a <code><span></code>.</p> <div class="second"> <span>Span!</span> <span>Span</span> <em>This is an `em`.</em> <span>Span</span> <span>Span!</span> <span>Span</span> <span>Span!</span> <span>Span</span> </div> <br> <h3><code>span:nth-of-type(2n+1)</code>, WITH an <code><em></code> among the child elements.</h3> <p>Children 1, 4, 6, and 8 are selected.<br> 3 isn't used in the counting or selected because it is an <code><em></code>, not a <code><span></code>, and <code>nth-of-type</code> only selects children of that type. The <code><em></code> is completely skipped over and ignored.</p> <div class="third"> <span>Span!</span> <span>Span</span> <em>This is an `em`.</em> <span>Span!</span> <span>Span</span> <span>Span!</span> <span>Span</span> <span>Span!</span> </div>
html {
font-family: sans-serif;
}
span,
div em {
padding: 5px;
border: 1px solid green;
display: inline-block;
margin-bottom: 3px;
}
.first span:nth-child(2n+1),
.second span:nth-child(2n+1),
.third span:nth-of-type(2n+1) {
background-color: lime;
}
{{EmbedLiveSample('Detailed_example', 550, 550)}}
| 仕様書 | 状態 | 備考 |
|---|---|---|
| {{SpecName('CSS4 Selectors', '#nth-child-pseudo', ':nth-child')}} | {{Spec2('CSS4 Selectors')}} | <selector> の構文と仕様書に、親を持たない要素も一致するよう追加。 |
| {{SpecName('CSS3 Selectors', '#nth-child-pseudo', ':nth-child')}} | {{Spec2('CSS3 Selectors')}} | 初回定義。 |
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
{{Compat("css.selectors.nth-child")}}