nth-childとnth-of-typeの違いについて

2021年02月15日

こんにちは、いとです。

今週……としたかったのですが、先週コーディングの学習を通して分からず調べる中で、残しておきたいと思った記述についてまとめておきます。

nth-childとnth-of-typeの違い

コーディングをする中で、何番目の子要素をあれこれしたい、みたいな時に使用する疑似要素「nth-child」と「nth-of-type」。
この二つの違いがいまいちよく分からなかったので、調べてみました。

nth-child → 要素に関わらず何番目と数える

nth-of-type → 特定の要素に対して何番目と数える

答えは上記ですが、これだけでは分かりづらいので。
下記のようなコードがあったと仮定します。

<h1>test_title1</h1>
<p>testtext1</p>
<p>testtext2</p>
<p>testtext3</p>
<h1>test_title2</h1>
<p>testtext4</p>
<p>testtext5</p>
<p>testtext6</p>

この時、nth-childで

p:nth-child(2n) {
color: red;
}

と記述すると、要素名に関わらず2の倍数に該当する要素が赤くなります。
つまり、testtextの1、3、4、6の4ヶ所ですね。

それに対してnth-of-typeの場合は、

p:nth-of-type(2n) {
color: red;
}

nth-childと同じように記述しても、あくまでp要素の中の2の倍数に該当する要素が赤くなるので、testtextの2、4、6の三ケ所となります。

小さな違いですが、表示される内容を考えると大きな違いとなりますね。

その上で応用?はこちらが分かりやすかったので。
CSSのnth-childとnth-of-typeについて基本から学ぼう

最後に

自分なりにアウトプットしてみると、思考が整理されていいですね。ただ文面を読むだけよりもずっと理解ができるような気がします。
今後はこういうアウトプットも行っていきたいです。

もちろんまだまだ学習中の身ですので、誤り等ありましたら教えていただけると嬉しいです。よろしくお願いします。