概述:由两个或多个基础选择器通过不同的方式组合而成的选择器
1.后代选择器
后代选择器又称包含选择器,可以选择某元素后代的元素
-
语法:
E F { 样式声明; }
-
描述:【空格】连接一个或多个选择器
-
作用: 选择E元素内部包含的所有F元素
/* .warp 范围内所有的span都有效 */
.wrap span {
color: tomato;
}
<div class="wrap">
<span>我是第一个span</span>
<ul>
<li>
<span>我是第a二span个</span>
</li>
</ul>
<span>我是第三个span</span>
<div class="txt">div文本</div>
</div>
2.子代选择器
子代选择器他只能选择他的子代范围内的选择器,也就是父子关系
-
语法
E > F { 样式声明; }
-
描述:【大于】号 连接一个或多个选择器
-
作用: 选择E元素内部包含的所有直接子元素F(第一嵌套层级)
父类选择器与子代选择器之间与大于号隔开
/* .warp 范围内所有的子元素span都有效 */
.wrap>span {
color: tomato;
}
<div class="wrap">
<span>我是第一个span</span>
<ul>
<li>
<span>我是第a二span个</span>
</li>
</ul>
<span>我是第三个span</span>
<div class="txt">div文本</div>
</div>
</div>
3.群组选择器
群组选择器是在样式表中有很多具有相同样式的元素,为了尽量减少代码,我们可以用群组选择器
群组选择器是将任意多个选择器分在一组,每个选择器之间用逗号隔开
-
语法
E,F { 样式声明; }
-
描述:【逗号】连接一个或多个选择器
-
作用: 使用逗号分隔的列表来对选择器进行分组,给列表中每一个选择器选中的元素设置样式
选择器1,选择器2,选择器3{};
选择器1和选择器2选择器3是都具有相同的样式的
选择器1和选择器2选择器3中间以逗号来隔开: 选择器1,选择器2,选择器
注意:最后一个选择器后面不用加逗号
h2,
h3,
h6,
div,
.box,
#box2 {
color: blue;
}
<h2>h2h2h2h2h2h</h2>
<h3>h3h3h3h3h3</h3>
<h6>h6h6h6h6h6h</h6>
<div>divdivdiv</div>
<div class="box">box111</div>
<p id="box2">ppppp</p>
4.伪类链接选择器
用于添加特殊效果
- 语法
选择器:伪类{ }
- 用于设置链接的不同状态
a:link{ 链接的默认样式 }
a:visited{ 链接访问过后的样式 }
a:hover{ 鼠标悬停的样式 }
a:active{ 鼠标按下的样式 }
a:link {
color: tomato;
}
a:visited {
color: yellow;
}
a:hover {
color: purple;
}
a:active {
color: greenyellow;
}
四个伪类状态都有效:L-v-H-a
- :hover不仅可以表示链接的悬停,也可以用于其他标签中
/* 鼠标悬停到.box1盒上,让其本身的背景颜色变为蓝色 */
.box1:hover{
background-color: lightblue;
}
/* 鼠标悬停到.box2盒上,让p标签文字颜色变为红色 */
.box2:hover p{
color: red;
}
/* 鼠标悬停到.box3上,让p标签和h3标签的文字颜色都变为blue */
.box3:hover h3,
.box3:hover p{
color: red;
}
.box3 :hover{
color: blue;
}
5.相邻选择器
-
语法
- 示例:E+F{ 样式声明 } 用加号连接
- 描述:【加号】 连接一个或多个选择器
-
作用:E元素之后紧跟着的兄弟元素F
-
代码示例
.box + p{ background-color:red } <p>这个P元素不会被应用样式</p> <div class="box">box</div> <p>这个P元素会被应用样式</p> <p>这个P元素不会被应用样式</p>