トップに戻る
【図解で簡単】親要素, 子要素って何?HTMLの要素の関係性を解説
 > 
HTML/CSS > 
プログラミング > 
HOME > 
2022 / 06 / 30
2024 / 01 / 12

【図解で簡単】親要素, 子要素って何?HTMLの要素の関係性を解説

HTMLの構造を説明する際、よく「親要素」や「子要素」などの単語が使われます。当たり前のように出てくる単語ですが、勉強を始めたばかりの方にはあまり馴染みがないでしょう。今回は、そんな要素の構造を示す単語について、基本用語を詳しく解説していきます。

HTMLの要素(タグ)の関係性を表す用語

まず親要素や子要素といった呼称は、それぞれが関係性を持ったHTML構造において成り立ちます。

下の画像は、それぞれが関係性を持っているHTML構造の例です。

簡単に説明すると、以下のようになります。

  • <ul> … 箇条書き項目を包括してリストにする要素
  • <li> … リストの各項目を表す要素
  • <div> … 各項目の内容を表す要素

階層

これらの構造を説明する際、よく階層という言葉が使われます。

階層とは、HTMLの構造上、そのタグがどの位置かを示すものです。

例えば上記の画像の場合、

赤文字で書かれたulという要素のある場所が一番上の階層で、その下にli要素、さらにその下の階層にdiv要素がある状態

だと説明できます。

階層をわかりやすく可視化すると、以下のようになります。

では、上記のサンプルをもとに、親要素や子要素などの用語について解説していきます。

親要素

親要素とは、特定の要素の階層を有する要素を指します。

言い方はややこしいですが、下のように図解してみるとわかりやすいかもしれません。

親要素の関係

まず最下層にあるdiv要素の立場から見た場合、div要素が存在している階層を有している要素は、li要素。

つまり、li要素はdiv要素の親要素と判断できます。

一方でli要素の視点だと、上にあるul要素が親要素であり、自身は親要素ではなくなるわけです。

また、jQueryなどで親要素を取得したい場合には、

// li要素の親要素ulを取得
$("li").parent();

というような記述をします。ただし、CSSで親要素を指定するような記述は現時点では扱えないため、注意が必要です。

子要素

もう察している方がほとんどだと思いますが、子要素は親要素とは反対に、特定の要素が有している、一つ下の階層にある要素を指します。

図解したものが下の画像です。

子要素の関係

要するに、要素Xから見て下にあるものが子要素で、子要素から見た要素Xが親要素という、依存的な関係性になっています。

CSSによるコーディングはもちろん、プログラミングをする際にも頻出する用語なので、しっかり押さえておくのがおすすめです。

jQueryやCSSで指定する場合は、

// CSS
ul > li{}

// jQuery
$("ul").children("li");

と記述します。どちらもよく目にするコードですね。

親子関係の図

孫要素

孫要素は、特定の親要素から見た際、子要素よりさらに下の階層にある要素のことです。

サンプルの場合は、下図のようにul要素から見たdiv要素が、孫要素に該当します。

孫要素の関係

ただし、孫要素は子要素とは違い、一つの階層に限定されるわけではありません。図では孫要素となっているdiv要素の下に、いくつもの階層があった場合でも、それらは全てulやliの孫要素という扱いになります。

孫要素だけをCSSやjQueryで指定したい場合には、一度以下のような形で子要素の指定を経由する必要があります。

// CSS
// ulの子要素であるliの下にある全ての要素(孫要素)
ul > li *{}

// jQuery
$("ul").children("li").find("*");

// 「*」というのは、「全ての要素」を指す

少しだけ記述がややこしくなるので、注意が必要です。

また、子要素や孫要素など、一つの要素の下にある全ての要素を指す場合は、子孫要素とまとめて呼びます。

子孫要素を呼び出す場合は、いちいち子要素を経由しなくても、

// CSS
ul *{}

とシンプルに記述するだけでOKです。

祖先要素(先祖要素)

親と子の関係があるよう、孫と対等的な関係を表す用語として、「祖先要素」というものがあります。これについては造語というか、色々と呼び方はありますが、ここでは祖先要素という呼び方を使います。

祖先要素とは、とある要素の親要素より、さらに上にある要素を指す言葉です。

孫と祖先の関係

孫要素と同じく、親要素より上にある要素を不特定多数に指す言葉ですが、CSSで指定する場合は、コードとして記述するのが多少面倒になります。

ただ、jQueryで指定する場合にはparents()メソッドがあるため、それほど苦労はしません。

// 祖先要素を取得
$("div").parent("li").parents();

ただ、いくつもある祖先要素を取得する場合は、ケースに合わせてコードを書き換えないと、予期せぬバグの原因になる可能性があります。

まとめ

関係図のまとめ

HTML要素の関係性は、初心者の方からすると混乱のもとになりやすく、理解しにくいかもしれません。しかし、図解しながら追っていくと、それほどややこしいお話ではないというのが、わかってもらえたのではないでしょうか。要素の関係性について苦手意識がある方は、この記事を通じて、少しでも理解を深めておくのがおすすめです。

SHARE