一尘不染

受不透明度影响的元素的堆叠顺序

css

如何z-indexopacity决定在HTML堆叠元素的订单时,有关系吗?

当我保持opacity小于1由具有一些元件上z-index的发言权999。元素落后于没有元素的元素z-index

$(function() {

  $("#checkbox1").on("change", function() {

    $("#green-parent").toggleClass("add-opacity", this.checked);

  });

});


.green,

.blue {

  position: absolute;

  width: 100px;

  line-height: 100px;

  text-align: center;

  color: white;

}

.green {

  z-index: 999999999;

  top: 50px;

  left: 50px;

  background: green;

}

.blue {

  top: 60px;

  left: 90px;

  background: blue;

}

.add-opacity {

  opacity: 0.99;

}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>



<input id="checkbox1" type="checkbox" value="1">

<label for="checkbox1">Add opacity to green box parent</label>





<div id="green-parent">

  <span class="green">Green</span>

</div>

<div>

  <span class="blue">Blue</span>

</div>

阅读 263

收藏
2020-05-16

共1个答案

一尘不染

具有“自动”以外的z索引值的定位元素和不透明度值小于1的元素将生成堆叠上下文。请参阅有关喷漆顺序的规则。

在您的第一个示例中,我们具有带有多个后代的根堆栈上下文,包括:

  • 定位的Z-index为正的绿色框
  • 带有autoz-index的蓝色框

带有autoz-index 的蓝色框位于后面;Z索引为正的绿色框位于前面(请参见规则8和9)。

在您的第二个示例中,我们有:

  • 具有不透明度的元素(包含绿色框;请注意,绿色框上的z-index对该元素而言是局部的)
  • 没有z-index的定位蓝色框

这两个要素属于同一类别(见规则8)。在这种情况下,HTML顺序确定哪个元素出现在前面。蓝色框按源顺序显示在后面,因此它出现在前面。

2020-05-16