言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

CSS辞典

  1. トップページ
  2. CSS辞典
  3. 【CSSセレクタ】E:nth-child(n)

【CSSセレクタ】E:nth-child(n)

セレクタ:nth-child(n)』は、n番目の子要素に適用します。IE8以下では動きません。

:nth-of-type』との違いは他の要素をカウントするかどうか、というところがあげられます。例えば『p:nth-of-type(2)』と指定した場合、間に別の要素があっても他の要素をカウントせずに2番目のp要素に適用されますが『p:nth-child(2)』と指定した場合は、間にある別の要素もカウントしてしまう為、2番目がp要素じゃなければ適用されません。

サンプルコード

div p:nth-child(1) { color: red;} /* div要素の中の1番目のp要素を赤字にします。 */

ブラウザでの表示結果

div p:nth-child(2) { color: red;} /* div要素の中の2番目のp要素を赤字にします。 */
div.hoge p:nth-child(2) { color: red;} /* クラス『hoge』要素の中の2番目の要素がpじゃないので適用されません。 */

<div>
	<p>ここは1番目のp要素です。</p>
	<p>ここは2番目のp要素です。</p>
</div>
<div class="hoge">
	<p>ここは1番目のp要素です。</p>
	<div>ここは1番目のdiv要素です。</div>
	<p>ここは2番目のp要素です。</p>
</div>

注意点としてid名やクラス名、属性などからの特定と『:only-child』を併用した場合、まずその要素が唯一の存在であるかどうかの特定を行った後になおかつ指定された要素名、id名、クラス名、属性などを持っていた場合に適用する、といった動きになります。例えば、『p.hoge:only-child』と指定した場合、子要素がp要素しか存在しておらず、さらに『hoge』というクラス名を持っていた場合に限りデザインが当たります。

nth系の引数に『n』を使った場合の考察

『:nth-child』、『:nth-last-child』、『:nth-of-type』、『:nth-last-of-type』の引数の値に『n』を使った場合の『n』には『0を含む自然数の連番』が入っているものとして計算されます。数学における偶数を『2n』、奇数を『2n+1』と表す表記方法と同じです。要素数は『1』から数え始めますが、『n』は『0』から数え始めますのでご注意ください。

以下参考例です。『2n』と表したときは以下のような形になります。

  • 『n = 0』=>『2 * 0』 -> 0番目の要素に該当
  • 『n = 1』=>『2 * 1』 -> 2番目の要素に該当
  • 『n = 2』=>『2 * 2』 -> 4番目の要素に該当
  • 『n = 3』=>『2 * 3』 -> 6番目の要素に該当
  • 『n = 4』=>『2 * 4』 -> 8番目の要素に該当
  • 以下省略...

『2n+1』と指定した場合は以下になります。

  • 『n = 0』=>『2 * 0 + 1』 -> 1番目の要素に該当
  • 『n = 1』=>『2 * 1 + 1』 -> 3番目の要素に該当
  • 『n = 2』=>『2 * 2 + 1』 -> 5番目の要素に該当
  • 『n = 3』=>『2 * 3 + 1』 -> 7番目の要素に該当
  • 『n = 4』=>『2 * 4 + 1』 -> 9番目の要素に該当
  • 以下省略...

『6n-3』と指定した場合は以下になります。

  • 『n = 0』=>『6 * 0 - 3』 -> -3番目の要素に該当
  • 『n = 1』=>『6 * 1 - 3』 -> 3番目の要素に該当
  • 『n = 2』=>『6 * 2 - 3』 -> 9番目の要素に該当
  • 『n = 3』=>『6 * 3 - 3』 -> 15番目の要素に該当
  • 『n = 4』=>『6 * 4 - 3』 -> 21番目の要素に該当
  • 以下省略...

『-2n+3』と指定した場合は以下になります。

  • 『n = 0』=>『-2 * 0 + 3』 -> 3番目の要素に該当
  • 『n = 1』=>『-2 * 1 + 3』 -> 1番目の要素に該当
  • 『n = 2』=>『-2 * 2 + 3』 -> -1番目の要素に該当
  • 『n = 3』=>『-2 * 3 + 3』 -> -3番目の要素に該当
  • 『n = 4』=>『-2 * 4 + 3』 -> -5番目の要素に該当
  • 以下省略...

『n+3』と指定した場合は以下になります。

  • 『n = 0』=>『1 * 0 + 3』 -> 3番目の要素に該当
  • 『n = 1』=>『1 * 1 + 3』 -> 4番目の要素に該当
  • 『n = 2』=>『1 * 2 + 3』 -> 5番目の要素に該当
  • 『n = 3』=>『1 * 3 + 3』 -> 6番目の要素に該当
  • 『n = 4』=>『1 * 4 + 3』 -> 7番目の要素に該当
  • 以下省略...

要素数は『1』から数え始めるため、『0』番目以下の場合は無視されます。

対応ブラウザ

Chrome Chrome
1 以降
Firefox Firefox
3.5 以降
2 以前 ×
Safari Safari
3.1 以降
2 以前 ×
Edge Edge
12 以降
全バージョンで対応しています
IE IE
11
10
9
8 ×
7 ×
6 ×
Opera Opera
9.5 以降
8 以前 ×
iOS Safari iOS Safari
2 以降
1 以前 ×
Android Android Browser
4.4 以降
3 以前 ×
Chrome Android Chrome Android
最新版
デスクトップ版と同等の対応です
Firefox Android Firefox Android
最新版
デスクトップ版と同等の対応です

※ バージョン情報は MDN に基づいています。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。