我有三个块元素彼此相邻,第一个和最后一个是透明的,中间的是绝对定位的:
.box {
width: 300px;
height: 300px;
}
.box1 {
background: yellow;
opacity: 0.5;
}
.box2 {
background: red;
position: absolute;
left: 0;
top: 0;
width: 800px;
height: 800px;
}
.box3 {
background: black;
opacity: 0.5;
}
<div class="box box1"></div>
<div class="box box2"></div>
<div class="box box3"></div>
由于.box1
和.box3
设置为opacity:0.5
,我认为它们都会显示.box2
,但只有.box3
。为什么呢?
答案 0 :(得分:1)
您可以使用z-index
(最大的数字在顶部,最低的数字在向下)。
了解详情:
此属性分配有一个整数值(正数或负数),表示元素沿z轴的位置。如果你不熟悉z轴,想象一下页面上面有几层。每层都有编号。具有较大数字的图层将在具有较小数字的图层上方呈现。
.box {
position:relative;
width: 300px;
height: 300px;
}
.box1 {
z-index:20;
background: yellow;
opacity: 0.5;
}
.box2 {
z-index:10;
background: red;
position: absolute;
left: 0;
top: 0;
width: 800px;
height: 800px;
}
.box3 {
z-index:30;
background: black;
opacity: 0.5;
}
&#13;
<div class="box box1"></div>
<div class="box box2"></div>
<div class="box box3"></div>
&#13;
答案 1 :(得分:0)
Box2在您的示例中作为容器的角色。
要解决此问题,您必须更改DOM结构 这不是唯一的解决方案,但我认为更好。
.box-container {
background: red;
width: 800px;
height: 800px;
}
.box {
width: 400px;
height: 400px;
}
.box1 {
background: yellow;
opacity: 0.5;
}
.box2 {
background: black;
opacity: 0.5;
}
&#13;
<div class="box-container">
<div class="box box1"></div>
<div class="box box2"></div>
</div>
&#13;