常用复合选择器
概述:由两个或多个基础选择器通过不同的方式组合而成的选择器
1.后代选择器
后代选择器又称包含选择器,可以选择某元素后代的元素
语法:
E F {
样式声明;
}
描述:【空格】连接一个或多个选择器
作用: 选择E元素内部包含的所有F元素
/* .warp 范围内所有的span都有效 */
.wrap span {
color: tomato;
}
<div class="wrap">
<span>我是第一个span</span>
<ul>
<li>
<span>我是第二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>
兄弟之间的hover
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 100px;
height: 100px;
background: tomato;
}
.con {
width: 300px;
height: 300px;
height: 0;
background: yellowgreen;
transition: 2s;
}
.box:hover+.con {
height: 300px;
background-color: blue;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="con"></div>
</body>
</html>