CSS辞書

:nth-of-type()

擬似クラス

同じタグ名の要素の中での順序に基づいて要素を選択する擬似クラスです。:nth-child()との違いは、タグ名を考慮することです。見出しやセクション要素に特に有用です。

構文

Syntax
:nth-of-type(n) { ... }

Tailwindでは

バリアント nth-of-type-{n}: を先頭に付けて使います

first-of-type: / last-of-type: もある。

コード例

1

h2:nth-of-type(2n) { color: #3b82f6; }
実行結果
h2:nth-of-type(2n) → 偶数番目のh2要素が青色

見出し1 (h1)

見出し2-1 (h2) ← 1番目

段落1 (p)

見出し2-2 (h2) ← 2番目 (偶数)

段落2 (p)

見出し2-3 (h2) ← 3番目

見出し2-4 (h2) ← 4番目 (偶数)

💡 h2要素のみをカウント。他の要素(h1, p)は無視される

偶数番目のh2要素だけを青色にする

2

p:nth-of-type(1) { font-weight: bold; margin-top: 0; }
実行結果
p:nth-of-type(1) → 最初のp要素を太字+上マージン削除

記事タイトル (h2)

最初の段落です (p:nth-of-type(1)) ← 太字・上マージン0

画像 (img)

2番目の段落です (p:nth-of-type(2)) ← 通常スタイル

3番目の段落です (p:nth-of-type(3)) ← 通常スタイル

💡 p要素のみをカウント。h2やimgは除外される

最初のp要素を太字にして上マージンを削除

3

img:nth-of-type(3n) { border: 2px solid #f59e42; }
実行結果
img:nth-of-type(3n) → 3の倍数番目の画像に枠線
img 1
img 2
img 3 ← 枠線
img 4
img 5
img 6 ← 枠線
💡 3, 6, 9...番目のimg要素に枠線が適用される

3の倍数番目の画像に枠線を付ける

4

article:nth-of-type(odd) { background: #f8fafc; }
実行結果
article:nth-of-type(odd) → 奇数番目のarticle要素に背景色
記事1 (article:nth-of-type(1)) ← 奇数
背景色付き
記事2 (article:nth-of-type(2))
通常背景
記事3 (article:nth-of-type(3)) ← 奇数
背景色付き
記事4 (article:nth-of-type(4))
通常背景
💡 odd = 奇数 (1, 3, 5...), even = 偶数 (2, 4, 6...)

奇数番目のarticle要素に背景色を付ける

💡 TIPS

:nth-child()は全ての子要素をカウントするが、:nth-of-type()は同じタグ名の要素のみをカウントする。見出しレベルや画像の装飾に便利。

⚠️ よくある間違い

:nth-child()と混同しやすい。クラス名ではなくタグ名で判断されることに注意。

🤖 AIがよく間違えるポイント

:nth-of-type()が数えるのは「同じ要素型(タグ)」の中での順番で、クラスは考慮されません。「.item の3番目」のつもりで div.item:nth-of-type(3) と書くと、クラスのないdivも数に入るためズレます——これはAIの生成コードでも頻出のバグです。クラス基準なら:nth-child(n of .item)が正解です。

💬 AIへの頼み方

このnth-of-typeの選択がズレる原因を、childとof-typeの数え方の違いから特定して修正して

そのままAIチャットに貼り付けて使える依頼文の例です。ページ上部の「AI用にコピー」でこのページ全体をコンテキストとして渡せます。

関連プロパティ

ブラウザサポート

Baseline 広く利用可能
Chrome
1+
Firefox
3.5+
Safari
3.1+
Edge
12+