組合子
概述
選擇 | 描述 |
---|---|
div span |
後代選擇器(所有 <span> s 都是 <div> 的後代) |
div > span |
兒童選擇器(所有 <span> s 是 <div> 的直接孩子) |
a ~ span |
一般兄弟姐妹選擇器(所有 <span> s 都是 <a> 之後的兄弟姐妹) |
a + span |
相鄰的兄弟姐妹選擇器(所有 <span> s,緊接在 <a> 之後) |
注意: 同級選擇器將源文件中後面的元素作為目標。CSS 本質上(它的級聯)不能以前一個或父元素為目標。但是,使用 flex
order
屬性,可以在可視媒體上模擬先前的兄弟選擇器 。
後裔組合:selector selector
由至少一個空格字元(
) 表示的後代組合子選擇作為已定義元素的後代的元素。這個組合子選擇元素的所有後代(從子元素開始)。
div p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is red</p>
</section>
</div>
<p>My text is not red</p>
在上面的例子中,選擇前兩個 <p>
元素,因為它們都是 <div>
的後代。
兒童組合:selector > selector
子(>
)組合子用於選擇那些元件的兒童,或直系後代的指定元素。
div > p {
color:red;
}
<div>
<p>My text is red</p>
<section>
<p>My text is not red</p>
</section>
</div>
上面的 CSS 僅選擇第一個 <p>
元素,因為它是直接來自 <div>
的唯一段落。
第二個 <p>
元素未被選中,因為它不是 <div>
的直接子元素。
相鄰的兄弟姐妹組合:selector + selector
相鄰的兄弟(+
)組合子選擇緊跟在指定元素之後的兄弟元素。
p + p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<p>My text is red</p>
<hr>
<p>My text is not red</p>
上面的例子只選擇那些直接在另一個 <p>
元素之前的 <p>
元素。
General Sibling Combinator:selector ~ selector
一般兄弟(~
)組合子選擇跟隨指定元素的所有兄弟姐妹。
p ~ p {
color:red;
}
<p>My text is not red</p>
<p>My text is red</p>
<hr>
<h1>And now a title</h1>
<p>My text is red</p>
上面的例子選擇了另一個 <p>
元素之前的所有 <p>
元素,無論它們是否緊鄰。