CSSは奥が深いです。今更シリーズの一つですが、nth-child()とnth-type-of()の違いが今ひとつ理解できてませんでした。何でもnth-childを使ってました。

nth-child
nth-child は、指定された親要素内のすべての子要素の中から、指定した数値の位置にマッ    チする要素を選択します。
●要素のタイプに関係なく、単純に指定された位置を持つ要素を選択します。

nth-of-type
nth-of-type は、指定された親要素内の特定のタイプの要素の中から、指定した数値の位置にマッチする要素を選択します。
●要素のタイプが特定されており、そのタイプの要素のみがカウントされます。


例えば、下記のようなコードがあった場合
<div class=”example-class”>
<div class=”item”>1番目の子要素</div>
<div class=”item”>2番目の子要素(ここにスタイルを適用したい)</div>
<div class=”item”>3番目の子要素</div>
</div>

下記のCSSはうまくいきません。
.item:nth-child(2) {
color: blue;
}

おそらく、親要素を基準にしての2番目の子要素はどの親の要素から数えて、2番目かがわからないからだと思います。(本人はわかっていますが。。。)
nth-childを使いたい場合、下記のように記述します。
.example-class > .item:nth-child(2) {
color: blue;
}

対して、nth-type-ofは特定の要素に対して、何番目かなので下記のように書くことができます。
.item:nth-of-type(2) {
color: blue;
}

今まであまり理解していなく、classを無理やりつけて調整していました。WordPress化を見据えた場合、むやみにクラスをつけない方がいいとわかりましたので、今一度、ちゃんと理解する必要がありました。

今更ですが、スッキリしました。

投稿者

Kの手習い

前職はOA機器の販売営業でしたが、退職して、50代で1からプログラマーを目指します。一般的にこの年齢からは厳しいと言われておりますが、この歳ならではの経験を活かして、頑張ります!

コメントを残す