CSS进阶-选择器
CSS进阶-选择器
前言
前面我们已经学习了4种选择器。接下来要学习的选择器,可以用于比较复杂的场景。
目标:
- 理解复合选择器的规则,并熟练使用复合选择器在HTML选择元素。
1、复合选择器
1.1 后代选择器 :空格
作用:根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素
选择器语法:
选择器1 选择器2 {css}
- 选择器1:父元素
- 选择器2:为选择器1的后代元素
结果:
- 在选择器1中所找到元素的后代(儿子、孙子、重孙子...)中,找到满足条件的选择器2的标签,设置样式
注意点:
- 后代包括:儿子、孙子、重孙子...
- 后代选择器中,选择器与选择器之间通过
空格隔开
代码示例:
<!-- css代码区 -->
<style>
/* 找到div的儿子p,并设置颜色为蓝色 */
div p {
color: blue;
}
</style>
<!-- body中html代码区 -->
<p>这是一个p标签</p>
<div>
<p>这是div的儿子p</p>
</div>
1.2 子代选择器: >
作用:根据HTML标签的嵌套关系,选择器父元素子代中满足条件的元素
选择器语法:
选择器1 > 选择器2{css}
结果:
- 在选择器1所找到标签的子代(儿子)中,找到满足选择器2的标签,设置样式
代码示例:
<!-- CSS代码区 -->
<style>
/* 空格隔开的是后代,儿子,孙子,重孙子 */
/* div a {
color: red;
} */
/* 这里我们只想给div的儿子a添加样式 */
div>a {
color: aquamarine;
}
</style>
<!-- HTML代码区 -->
<div>
父级
<a href="#">这是div里面的a</a>
<p>
<a href="#">这是div里面的p里面的a</a>
</p>
</div>
效果:
1.3 并集选择器:,
作用:同时选择多组标签,设置相同的样式
选择器语法:
选择器1 , 选择器2{css}
结果:
- 找到选择器1 和 选择器2 选中的标签,设置样式
注意点:
- 并集选择器的魅族选择器之间通过
,分割 - 并集选择器中的每组选择器可以是基础选择器或者复合选择器
- 并集选择器中的每组选择器通常一行写一个,提高代码的可读性
代码示例:
<!-- CSS代码区 -->
<style>
div a,
div h1 {
font-weight: normal;
color: orange;
}
</style>
<!-- HTML代码区 -->
<!-- 这里我们给div>p>h1和div>div>a添加样式 -->
<div>
父级
<p>
<h1>这里是p里面的标题</h1>
</p>
<div>
<a href="#">这里是div中的div里的a标签</a>
</div>
</div>
效果:
1.4 交集选择器:紧挨着
作用:选中页面中 同时满足 多个选择器的标签
选择器语法:
选择器1选择器2 {css}
结果:
- (既又原则)找到页面中 既 能被选择器1选中,又 能被选择器2选中的标签,设置样式
注意点:
- 交集选择器中的选择器之间是紧挨的,没有东西分隔
- 交集选择器中如果有标签选择器,标签选择器必须写在最前面
代码示例:
<!-- CSS代码区 -->
<style>
/* 交集选择器选中既是p标签,类名又是box的标签 */
p.box {
color: green;
}
</style>
<!-- HTML代码区 -->
<!-- 这里我们的要求是,找到一个p标签,并且带box类,将其字体设置为green -->
<div class="box">这是div标签:box</div>
<p>这是p标签</p>
<p class="box">这是p标签:box</p>
效果:
1.5 hover伪类选择器
作用:选中鼠标悬停在元素上的状态,设置样式
选择器语法:
选择器:hover{css}
注意点:
- 伪类选择器选中的元素的某种状态
代码示例:
<!-- CSS代码区 -->
<style>
a:hover {
color: green;
background-color: aqua;
}
</style>
<!-- HTML代码区 -->
<a href="#">这里是a标签</a>
没有鼠标悬停时:
悬停后:

浙公网安备 33010602011771号