常用复合选择器
概述:由两个或多个基础选择器通过不同的方式组合而成的选择器
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>
兄弟之间的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>