周老师讲:CSS复合选择器

242 阅读3分钟

1. 复合选择器

选择器 名称 描述 版本
s1, s2, s3{} 群组选择器 多个选择器同时使用 1
s1 s2{} 后代选择器 指定选择器的后代元素 1
s1 > s2{} 子类选择器 指定选择器的子元素 2
s1 + s2{} 第一小弟选择器 指定选择器的相邻元素 2
s1 ~ s2{} 弟弟们选择器 指定选择器的后面元素 3

2. 群组选择器

概念: 群组选择器就是将多个选择器通过逗号分隔,同时设置一组样式。

布局:

<p>秦时明月汉时关</p>
<h1 class="a">万里长征人未还</h1>
<span id="b">但使龙城飞将在</span>
<div>不教胡马度阴山</div>

样式:

p, .a, #b, div{ 
	color:red;
}

3. 后代选择器

概念: 后代选择器可以抓取父元素内部的所有子元素,不在乎层次深度。

布局:

<div id="嬴政">
    <div>扶苏</div>
    <div>胡亥</div>
</div>
<div id="曹操">
    <div>曹丕
        <div>曹叡</div>
    </div>  
    <div>曹植</div>
</div>

样式:

#曹操 div{ 
	border :1px solid red;
	margin:	10px;
}

父子元素也是有限定的,即不是谁都可以当另一个元素的父元素,如`<div>` 可以包含 `<p>` ,`<p>` 可以包含 `<h#>` ,但是 `<p>` 中无法包含 `<div>` 。

4. 子类选择器

概念: 选择父元素内部的所有儿子元素,只匹配第一层深度。

布局:

<div id="fuqin">父亲
    <div id="a">大儿子</div>
    <div id="b">二儿子
        <div id="c">大孙子</div>
        <div id="d">二孙子
            <div id="e">大重孙子</div>
        </div>
    </div>
</div>

样式:

#ererzi > div{ 
	border :1px solid red;
	margin:	10px;
}

5. 第一小弟选择器

概念:

  • 匹配相邻的下一个同级指定元素,若下个同级元素和你所指定的不匹配,则CSS失效。
  • 必须同时满足"相邻"和"类型匹配"这两点,否则选择器失效。

布局:

<p>声声慢</p>
<div>寻寻觅觅,冷冷清清,凄凄惨惨戚戚。</div>
<p>乍暖还寒时候,最难将息。</p>
<p>三杯两盏淡酒,怎敌他晚来风急?</p>
<p>雁过也,正伤心,却是旧时相识。</p>
<p>满地黄花堆积,憔悴损,如今有谁堪摘?</p>
<p>守着窗儿,独自怎生得黑?</p>
<p>梧桐更兼细雨,到黄昏点点滴滴。</p>
<p>这次第,怎一个愁字了得!</p>

样式:

div + p{ 
	color:red;
}

6. 弟弟们选择器

概念: 匹配后面的同级所有的指定元素,不在乎是否相邻。

布局:

<p>这是一首诗歌</p>
<p>作者是李白</p>
<h1>静夜思</h1>
<div>窗前明月光</div>
<p>疑是地上霜</p>
<p>举头望明月</p>
<p>低头思故乡</p>

样式:

h1 ~ p{
	color:red;
}