Web活のロゴ

Web制作Output&初心者のための徹底ガイド

セレクタの種類(子孫セレクタ、子セレクタ)
クラスセレクタとの違いについて

2023.06.21HTMLセレクタの種類について

まずは子孫セレクタと子セレクタの違いについて解説いたします。

スポンサーリンク

子孫セレクタと子セレクタの違いについて

簡単なコードを元に考えていきます。
HTML:

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
 
  <body>
    <p>test1</p>
    <div>
      <p>test2</p>
    </div>
    <div>
      <div>
        <p>test3</p>
      </div>
    </div>
    <p>test4</p>
  </body>
</html>
※上記のコードを表示

test1

test2

test3

test4

CSSにて子孫セレクタを記述

body p{
  color: red;
}
※上記の結果

test1

test2

test3

test4

子孫セレクタを使用すると、bodyタグ内のすべてのPタグに対して値が適用されることがわかります。続いて子セレクタを見てみましょう。

CSSにて子セレクタを記述

body>p {
  color: red;
}
※上記の結果

 

test1

test2

test3

test4

こちらは先程とは異なり、bodyタグの直下に配置されたPタグにのみ適用されていることがわかります。したがって、上記の指定はまったく異なるものであることが明らかになり、内容をしっかりと理解したうえ使用しデザインを形成する必要があります。

スポンサーリンク

クラスセレクタとの違いを理解しましょう。

要素の後にスペースを入れるかどうかで、意味合いが変わります。

以下のコードを確認ください。

<html lang="ja">
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
  </head>
  <body>
    <p>test1</p>
    <p class="test">test2</p>
  </body>
</html>
※上記のコードを表示

 
test1

test2

以下の子孫セレクタでCSSを適応した場合の挙動を考えて見ましょう。

body p.test{
  color: red;
}
※上記の結果

test1

test2

こちらは子孫セレクタで記述しましたが、test1のPタグには適応されませんでした。原因は指定の仕方にあります。

【重要】

body p※bodyの中の全てのPタグを指定
body p.test※bodyの中のp.testというクラスセレクタのみ指定
body p test※bodyの中のPタグの中の全てのtestクラスを指定

上記の指定は別の指定になることに注意が必要です。

スポンサーリンク
【統括】

子孫セレクタの注意点:
親要素と子孫要素を結びつけるために使用する。
スペースを使ってセレクタとセレクタをつなぐ。
ネスト構造を指定する際に使用するが、過剰な使用は避ける。

クラスセレクタの注意点:
クラス属性を指定するために使用する。
ピリオド(.)を使ってセレクタを指定する。
クラス名は他の要素と重複しないようにする。