記事の内容やaishipシリーズに関するお問い合わせはこちらから

0120-173-163 お電話

[電話受付時間]平日9:30〜19:00

TOP

CATEGORY

SERVICE

CSSの擬似クラスを使いこなそう〜nth-childとnth-of-typeの違いとは

CSSの擬似クラスを使いこなそう〜nth-childとnth-of-typeの違いとは

こんにちは。開発部の濵口です。

もうそろそろ梅雨入りですね。いかがお過ごしでしょうか。

みなさんCSSの擬似クラスはご存知でしょうか?擬似クラスを使いこなすと柔軟にセレクタを指定することができるため、Webページの装飾の幅が広がります。

今回は数ある擬似クラスの中でも似通っていて混乱しがちな、nth-childとnth-of-typeの違いについて解説していきます!

擬似クラスの利用

nth-childもnth-of-typeもn番目の要素を指定することのできる擬似クラスです。

例えば、表の背景色は交互に色分けされていることが多いですよね。そんな時にnth-childやnth-of-typeを利用すると簡単に実現できます。

これら擬似クラスはどちらも同じような用途で使いますが、基本的に別の機能をもった擬似クラスです。理解して使用しないと「思ったものとは違う要素にスタイルが適用されてしまう」ことがありますので、違いを明確にしていきましょう!

nth-childとnth-of-typeの違いを理解する

nth-childとは

nth-childは以下のような形式で記載することで、「指定要素の兄弟要素のうちで、上からn番目の指定要素」に対してスタイルを適用します。

『 要素:nth-child(値){スタイルの内容} 』

以下のHTMLでどの要素がターゲットとなるのかを実際に確認していきましょう。このHTMLにはFruitsという親要素の中に7つの子要素が含まれています。


<div class="Fruits">
   <h1>旬の果物</h1>
   <p>りんご</p>
   <p>みかん</p>
   <p>バナナ</p>
   <p>ブドウ</p>
   <p>桃</p>
   <p>レモン</p>
</div>

以下のCSSを適用します。


.Fruits p:nth-child(3) {
       color: #FF0000;
}

「みかん」にスタイルが適用されて赤文字に変わっていることがわかります。直感的には指定要素がpタグなのでpタグの3番目である「バナナ」にスタイルが適用されそうですが実際は違います。

nth-childでは兄弟要素を上から数える際、指定要素以外の兄弟要素(h1タグ)も対象とするため、単純に上から3番目である「みかん」が選ばれるわけですね。

nth-of-typeとは

nth-of-typeの記載形式もnth-childと変わりませんが、こちらは「指定要素の兄弟要素のうちで、指定要素の順位が上からn番目の要素」に対してスタイルを適用します。

『 要素:nth-of-type(値){スタイルの内容} 』

先ほどのHTMLに以下のCSSを適用します。


.Fruits p:nth-of-type(3) {
       color: #FF0000;
}

今度は「バナナ」が赤文字に変わりました。nth-of-typeは指定要素であるpタグの順位を数えるため、pタグのうちで3番目である「バナナ」が選ばれたわけですね。

終わりに

いかがでしたでしょう。nth-childとnth-of-typeの違いがわかりましたでしょうか。

直感的には「nth-childは他の要素が関係するが、nth-of-typeは他の要素が関係しない」と解釈できるかと思います。両者の機能の違いを理解して、使用する擬似クラスを選定するようにしましょう。

またどちらの擬似クラスも(値)部分には数字だけでなく、2n+1のような式や、奇数偶数を表すキーワードのoddやevenが使用できます。例えば、3の倍数の要素を指定したければ3nと指定することで可能です。

サンプルを用意しましたので実際にCSSを変更して表示を確認してみるのも良いでしょう。
参考 Url : http://hamaguchi-test.aispr.jp/web/SampleNth

ぜひ擬似クラスを使いこなしてWebデザインに磨きをかけましょう!

                   
クラウドECのサイト構築はaishipR-カスタマイズ可能なASP実績No.1

累計2000社以上の導入の総合通販型カートシステムで、カスタマイズ性が高く、デザインの自由度はもちろん、各種システムとの連携や機能追加等も独自のカスタマイズができるため、こだわりのある本格的な通販を月額9,800円から実現できます。 またモバイルファースト設計や月2回の無償バージョンアップなどの特徴があり、使いやすさと最新性を追求した通販サイトを構築できます。 さらに信頼性の高いサーバーを採用しており大規模アクセスにも対応できるため、これからさらに通販での売上を伸ばされたい事業者様におすすめです。
         

WEBデザインカテゴリの最新記事