CSS 相邻兄弟選択子
- 前のページ CSS 子要素選択子
- 次のページ CSS 课外書
相邻兄弟選択子(Adjacent sibling selector)は、他の要素の後に続く要素を選択し、両者が同じ親要素を持つことができます。
相邻兄弟の選択
他の要素の後に続く要素を選択し、両者が同じ親要素を持つ場合、相邻兄弟選択子(Adjacent sibling selector)を使用できます。
例えば、h1要素の後に続く段落の上マージンを増やす場合、以下のように記述します:
h1 + p {margin-top:50px;}
この選択子は「h1要素の後に続く段落を選択し、h1要素とp要素が同じ親要素を持つ」と読みます。
文法説明
相邻兄弟選択子は加号(+)を使用しており、これは相邻兄弟結合記号(Adjacent sibling combinator)です。
注記:子結合記号と同様に、相邻兄弟結合記号の横に空白記号があります。
以下のドキュメントツリーの一部をご覧ください:
<div> <ul> <li>リストアイテム 1</li> <li>リストアイテム 2</li> <li>リストアイテム 3</li> </ul> <ol> <li>リストアイテム 1</li> <li>リストアイテム 2</li> <li>リストアイテム 3</li> </ol> </div>
上記のスニペットでは、div要素に2つのリストが含まれています:1つの無序列表と1つの順序付きリスト、それぞれ3つのリストアイテムを含んでいます。これらのリストは相邻兄弟であり、リストアイテムも相邻兄弟です。ただし、1番目のリストのリストアイテムと2番目のリストのリストアイテムは相邻兄弟ではありません。なぜなら、これらのリストアイテムは同じ親要素に属していないからです(最大でも従兄弟に過ぎません)。
結合子を使うと、2つの相邻兄弟のうちの2番目の要素のみを選択できます。以下の選択子を見てください:
li + li {font-weight:bold;}
上記の選択子は、リストの2番目と3番目のリストアイテムのみを太字にします。1番目のリストアイテムは影響を受けません。
他の選択子と組み合わせる
相邻兄弟結合子は他の結合子と組み合わせられます:
html > body table + ul {margin-top:20px;}
この選択子は、table要素の直後に現れるすべての兄弟ul要素を選択します。このtable要素はbody要素に含まれており、body要素はhtml要素の子要素です。
- 前のページ CSS 子要素選択子
- 次のページ CSS 课外書