このウェブサイトはご利用の端末での閲覧に対応していません。
This website does not support your device.

結合子

記事Jul. 9th,2021
セレクタを組み合わせて親子要素や兄弟要素を選択するための結合子について。
この記事はCSS3に対応しています。
この記事はCSS3に対応しています。

セレクタの結合子

“結合子”とは?

結合子(Combinators)”はその前後に記述された合成セレクタの文書ツリーでの関係性を表します。

結合子は複数の合成セレクタを組み合わせて一つの複合セレクタにするために使用されます。複合セレクタは結合子が表した関係性を満たしている要素が、それぞれが対応する合成セレクタの条件を満たしている時に、一番最後に記述された合成セレクタが選択する要素を選択します。

結合子の一覧

結合子 説明
_ 子孫要素の選択
> 子要素の選択
+ 隣接する兄弟要素の選択
~CSS Selectors Level 3 で追加 後続する兄弟要素の選択
||CSS Selectors Level 4 で追加 同列要素の選択

仕様書

定義されている仕様書
Level 1 Level 2 Level 3 Level 4
勧告(REC) 勧告(REC) 勧告(REC) 作業草稿(WD)
_
定義あり

定義あり

定義あり

定義あり
>
定義なし

定義あり

定義あり

定義あり
+
定義なし

定義あり

定義あり

定義あり
~
定義なし

定義なし

定義あり

定義あり
||
定義なし

定義なし

定義なし

定義あり

結合子の詳細

”結合子

概要

2つの合成セレクタを隔てるホワイトスペース(半角スペース(“ ”)、タブ文字など)は“子孫結合子(Descendant combinator)”となります。

子孫結合子で組み合わせられた複合セレクタは1個目の合成セレクタで選択された要素の子孫要素のうちで2個目の合成セレクタで選択されるものを選択します。

子孫結合子のイメージ

サンプルコード

.selected-1 {
background-color: rgba(182,221,123,0.5); /**/
}
.selected-1 * {
background-color: rgba(214,131,197,0.5); /**/
}
<div class="selected-1">
<p>
平安時代の女流歌人だった彼女は執筆した随筆の中で<span>「猫は上のかぎり黒くてことはみな白き」</span>と記していたという。
</p>
<p>
これが意味するのは<span>猫は背中が黒くてそれ以外は白い猫</span>が優美だということだ。
</p>
</div>

平安時代の女流歌人だった彼女は執筆した随筆の中で「猫は上のかぎり黒くてことはみな白き」と記していたという。

これが意味するのは猫は背中が黒くてそれ以外は白い猫が優美だということだ。

>”結合子

概要

2つの合成セレクタを隔てる大なり記号(U+003E、“>”)は“子結合子(Child combinator)”となります。

子結合子で組み合わせられた複合セレクタは1個目の合成セレクタで選択された要素の子要素のうちで2個目の合成セレクタで選択されるものを選択します。

子結合子のイメージ

サンプルコード

.selected-2 {
background-color: rgba(182,221,123,0.5); /**/
}
.selected-2 > * {
background-color: rgba(214,131,197,0.5); /**/
}
<div class="selected-2">
<p>
平安時代の女流歌人だった彼女は執筆した随筆の中で<span>「猫は上のかぎり黒くてことはみな白き」</span>と記していたという。
</p>
<p>
これが意味するのは<span>猫は背中が黒くてそれ以外は白い猫</span>が優美だということだ。
</p>
</div>

平安時代の女流歌人だった彼女は長保3年ごろまで執筆していた随筆の中で「猫は上のかぎり黒くてことはみな白き」と記していたという。

これが意味するのは猫は背中が黒くてそれ以外は白い猫が優美だということだ。

+”結合子

概要

2つの合成セレクタを隔てるプラス記号(U+002B、“+”)は“隣接兄弟結合子(Next-sibling combinator)”となります。

隣接兄弟結合子で組み合わせられた複合セレクタは1個目の合成セレクタで選択された要素の直後に記述された兄弟要素で2個目の合成セレクタで選択されるものを選択します。

隣接兄弟結合子のイメージ

サンプルコード

.selected-3 {
background-color: #00a497; /**/
}
.selected-3 + * {
background-color: #db7093; /**/
}
<ol>
<li>水星</li>
<li>金星</li>
<li class="selected-3">地球</li>
<li>火星</li>
<li>木星</li>
<li>土星</li>
<li>天王星</li>
<li>海王星</li>
</ol>
  1. 水星
  2. 金星
  3. 地球
  4. 火星
  5. 木星
  6. 土星
  7. 天王星
  8. 海王星

~”結合子CSS Selectors Level 3 で追加

概要

2つの合成セレクタを隔てるチルダ(U+007E、“~”)は“後続兄弟結合子(Subsequent-sibling combinator)”となります。

後続兄弟結合子で組み合わせられた複合セレクタは1個目の合成セレクタで選択された要素の後に記述された兄弟要素で2個目の合成セレクタで選択されるものを選択します。

後続兄弟結合子のイメージ

サンプルコード

.selected-4 {
background-color: #00a497; /**/
}
.selected-4 ~ * {
background-color: #db7093; /**/
}
<ol>
<li>水星</li>
<li>金星</li>
<li class="selected-4">地球</li>
<li>火星</li>
<li>木星</li>
<li>土星</li>
<li>天王星</li>
<li>海王星</li>
</ol>
  1. 水星
  2. 金星
  3. 地球
  4. 火星
  5. 木星
  6. 土星
  7. 天王星
  8. 海王星

||”結合子CSS Selectors Level 4 で追加

概要

2つの合成セレクタを隔てる2個の縦線(“||”)は“列結合子(Column combinator)”となります。

列結合子で組み合わせられた複合セレクタは1個目の合成セレクタで選択された列要素が表す列に含まれるセル要素で2個目の合成セレクタで選択されるものを選択します。

列に含まれる要素は文書の記述言語の定義によって決められます。セル要素が複数の列に属する場合にはいずれの列を選択するセレクタでも選択されます。

サンプルコード

.selected-5 || * {
background-color: #db7093; /**/
}
<table>
<colgroup>
<col span="2">
<col class="selected-5">
</colgroup>
<thead>
<tr>
<th>名前</th>
<th>漢字</th>
<th>英語</th>
<th>分類</th>
</tr>
</thead>
<tbody>
<tr>
<td>りんご</td>
<td>林檎</td>
<td>apple</td>
<td>バラ科リンゴ属</td>
</tr>
<tr>
<td>いちご</td>
<td></td>
<td>strawberry</td>
<td>バラ科オランダイチゴ属</td>
</tr>
<tr>
<td>もも</td>
<td></td>
<td>peach</td>
<td>バラ科モモ属</td>
</tr>
</tbody>
</table>
名前 漢字 英語 分類
りんご 林檎 apple バラ科リンゴ属
いちご strawberry バラ科オランダイチゴ属
もも peach バラ科モモ属
一番上へ
トップにもどる
シェアする
シェアする
Facebookでシェアする
ツイート
Google+でシェア
Pocket
はてなブックマーク