ホームページの作成や運用ノウハウについて、プロのクリエイターが情報を無料公開!

ホームページTIPS
facebook twitter mail

このサイトはコーディング初心者〜中級者向けの情報サイトです。掲載コードの転用制限はありませんが、
動作保証は行なっておりません。ご意見については、フォームからお知らせください。

html.cssに関するTips

更新日:2017.12.19

擬似クラス nth-child と nth-of-typeの違いについて理解する

解 説

ホームページのコーディングに必須となる擬似クラス。なかでも少しややこしい nth-child と nth-of-typeの違いについて、しっかり理解しましょう。

1混乱しがちな2つのcssについて

"親の1番目の子供かつ1番目のpタグ!"

"親の2番目の子供かつ2番目のpタグ!"

"親の3番目の子供かつ3番目のpタグ!"

以下はCSSファイルです /*nth-childで指定*/ p:nth-child(2) { color: red; } /*nth-of-typeで指定*/ p:nth-of-type(2) { color: red; }

p:nth-child(2)

指定されたpタグ、かつ指定されたpタグの「親要素の2番目の子要素」を選びます。

→つまり上の例でいうと、指定されたpタグかつ、その親要素section内の全ての要素の中の2番目の子要素、という条件を満たす

<p>"親のニ番目の子供かつニ番目のpタグ!"</p>が選ばれます。

 

 

p:nth-of-type(2)

指定されたpタグの「そのタグの順番が2番目の要素」を選びます。

→上の例でいうと、指定されたpタグの親要素section内のpタグの中で2番目の要素である

<p>"親のニ番目の子供かつニ番目のpタグ!"</p>が選ばれます。

 

上記のケースでは、同じpタグが選ばれる事になります。

では次のようなケースはどうでしょうか?

2選択するタグに違いがでる場合は、こんな時です。

"親の1番目の子供かつ1番目のh1タグ!"

"親の2番目の子供かつ1番目のpタグ!"

"親の3番目の子供かつ2番目のpタグ!"

以下はCSSファイルです /*nth-childで指定*/ p:nth-child(2) { color: red; } /*nth-of-typeで指定*/ p:nth-of-type(2) { color: red; }

 

<section>内の最初の要素はpではなく、h1です。この場合には先ほどと同じようにcssを書いても、

以下のように選択するタグが異なります。

 

p:nth-child(2)

指定されたpタグ、かつ指定されたpタグの「親要素の2番目の子要素」を選びますので、

<p>"親の2番目の子供かつ1番目のpタグ!"</p>が選ばれます。

 

 

p:nth-of-type(2)

指定されたpタグの「そのタグの順番が2番目の要素」を選びますので、

→上の例でいうと、指定されたpタグの親要素section内のpタグの中で2番目の要素である

<p>"親の3番目の子供かつ2番目のpタグ!"</p>が選ばれます。

 

違いがわかりましたか?

 

 

 

32のコードで解りやすく図解します。最初からそうしろ!と言われそうです(汗)

"親の1番目の子供かつ1番目のh1タグ!"

"親の2番目の子供かつ1番目のpタグ!"

"親の3番目の子供かつ2番目のpタグ!"

以下はCSSファイルです /*nth-childで指定*/ p:nth-child(2) { color: red; } /*nth-of-typeで指定*/ p:nth-of-type(2) { color: red; }

図解で見るとすぐ理解できると思います。

 

 

つまり、nth-child(x)は、その親要素のx番目を全ての要素を対象に選び出すのにたいし、

element : nth-of-type(x)は、その親要素のx番目をelementの要素を対象に選び出すのです。

もうこれで完璧に理解できたと思います。

トップへ