nth-childとnth-of-typeの違いを徹底解説|ウェブ制作初心者でも分かるセレクタの使い分け

  • このエントリーをはてなブックマークに追加
nth-childとnth-of-typeの違いを徹底解説|ウェブ制作初心者でも分かるセレクタの使い分け
この記事を書いた人

中嶋悟

名前:中嶋 悟(なかじま さとる) ニックネーム:サトルン 年齢:28歳 性別:男性 職業:会社員(IT系メーカー・マーケティング部門) 通勤場所:東京都千代田区・本社オフィス 通勤時間:片道約45分(電車+徒歩) 居住地:東京都杉並区・阿佐ヶ谷の1LDKマンション 出身地:神奈川県横浜市 身長:175cm 血液型:A型 誕生日:1997年5月12日 趣味:比較記事を書くこと、カメラ散歩、ガジェット収集、カフェ巡り、映画鑑賞(特に洋画)、料理(最近はスパイスカレー作りにハマり中) 性格:分析好き・好奇心旺盛・マイペース・几帳面だけど時々おおざっぱ・物事をとことん調べたくなるタイプ 1日(平日)のタイムスケジュール 6:30 起床。まずはコーヒーを淹れながらニュースとSNSチェック 7:00 朝食(自作のオートミールorトースト)、ブログの下書きや記事ネタ整理 8:00 出勤準備 8:30 電車で通勤(この間にポッドキャストやオーディオブックでインプット) 9:15 出社。午前は資料作成やメール返信 12:00 ランチはオフィス近くの定食屋かカフェ 13:00 午後は会議やマーケティング企画立案、データ分析 18:00 退社 19:00 帰宅途中にスーパー寄って買い物 19:30 夕食&YouTubeやNetflixでリラックスタイム 21:00 ブログ執筆や写真編集、次の記事の構成作成 23:00 読書(比較記事のネタ探しも兼ねる) 23:45 就寝準備 24:00 就寝


nth-childとnth-of-typeの違いを徹底解説

この節ではまずnth-childnth-of-typeの基本概念を正しく把握します。nth-childは親要素の子要素全体の順番を基準に動作します。つまり親が持つ全ての子要素を数え、何番目かで選択します。
一方nth-of-typeは同じ要素名だけを数える“タイプ別の順番”を使います。親の中で複数の異なる要素が混ざっていても、同じタグの要素だけを数える点が大きな違いです。

この違いを知っていれば、nth-childを誤って使ってしまい、狙わない要素がスタイルされて混乱する事態を避けられます。さらに、実務ではHTMLの構造が変わりやすく、階層が深くなると狙いどおりの要素を取るのが難しくなります。このとき適切なものを選ぶ判断力が働くと、保守性が高く安定したCSS設計が実現します。

この先、実例を通じて使い分けを実感しましょう。親の中に複数の異なる要素が混じっているケースでは、nth-childは便利ですが、同じタイプの要素だけを集計したい場合は nth-of-type の方が安全です。

実際の現場では、nth-child使用して全体のレイアウト調整を行い、nth-of-type を補助的に使う場面が多く見られます。たとえばカード型のリストでは、要素の追加や削除があってもアイコンや本文といった“同じタイプの要素”を正確に狙えることが重要です。

このような理解をもとに、次のセクションでは基本の差を表で整理し、実際のコード例で具体的な使い分けを示します。

基本の違いを整理する

まず前提として、セレクタの動作はCSSの仕様で決まっています。nth-childは親要素の子要素全体の位置を基準に選択します。たとえば ul の直下にある

  • が3つ並んでいるとき、li:nth-child(3) は必ず3番目の
  • を指します。ここで重要なのは、ul 以外の非
  • 要素が混ざっていても、全体の順番でカウントされる点です。
    一方、nth-of-type は同じ要素名の子要素だけを数えます。例えば