--- 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から始まります。
odd
even
<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')}} | 初回定義。 |
{{Compat("css.selectors.nth-child")}}