Aside from the opacity
stacking context Alexey Ten pointed out in his comment (which is a factor here), the z-index
is relative to the element's container. In this case, both your blue and green elements are contained within separate div
parents which have no defined z-index
. Due to the HTML ordering, the latter div
(the one with the blue box) will appear on top of the former one (the green one).
In this below example, I've added the class .first
to the first parent div
and .second
to the second one, then given them their own z-index
properties.
.green, .blue {
position: absolute;
width: 100px;
color: white;
line-height: 100px;
text-align: center;
}
.green {
z-index:999999999;
top: 90px;
left: 60px;
background: green;
}
.gp{
opacity:0.99;
}
.blue {
top: 100px;
left: 100px;
background: blue;
}
.first, .second {
position: relative;
}
.first {
z-index: 2;
}
.second {
z-index: 1;
}
<div class="first">
<span class="green">Green</span>
</div>
<div class="second">
<span class="blue">Blue</span>
</div>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…