lang='less'
.div1,.div2,.div3{
position: absolute;
}
.div1 {
z-index: 900
}
.div2{
z-index: 889;
}
.div3 {
z-index: 887;
}
.div2:hover{
z-index: 902; //div2在顶层,(有效)
}
.div3:hover{
z-index: 902; //div3在顶层(有效)
}
// 下面这句无效
.div3:hover+.div2{
z-index: 901; // 同时div2在次顶层(无效)
}
// 这样也不行
.div3:hover .div2{
z-index: 901; // div2在次顶层
}
你看一下,用.div3.div2 或者 .div3+.div2都行,关键是在html部分,要把div2放div3下面! .div2)只能选择与自己紧紧相连的身后的一个兄弟
第一种:+ 相邻兄弟选择器(.div3
第二种:~ 通用兄弟选择器(.div3~ .div2 )只可以选择在自己身后的所有类名是.div2小弟
关键就在于只能改变自身元素后面的元素样式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
}
.div1,
.div2,
.div3 {
position: absolute;
}
.div1 {
left: 0;
top: 0;
background: red;
z-index: 900;
}
.div2 {
background: blue;
z-index: 889;
left: 10px;
top: 10px;
}
.div3 {
background: #CCCCCC;
z-index: 887;
left: 20px;
top: 20px;
}
.div2:hover {
z-index: 902;
}
.div3:hover{
z-index: 903;
}
/* .div3:hover~.div2 {
z-index: 902;
} */
.div3:hover+.div2 {
z-index: 902;
}
</style>
</head>
<body>
<div class="div1"></div>
<div class="div3"></div>
<div class="div2"></div>
</body>
</html>
如果这三个元素是同级元素,你在触发div3的hover后,倒是可以修改div3里面包裹的元素的样式,但是没法去修改div2的样式
比如你div3套着div2