我知道opacity
创建了一个新的堆叠上下文,正如菲利普·沃尔顿(Philip Walton)在这篇文章中所展示的那样。
在下面的代码中,设置第二个子div 的opacity: .8
低于第一个子级的opacity: .9
wrapper
仍然第二个子级出现在第一个子级之上。
.HTML
<div id="wrapper">
<div class="block top">
Lorem ipsum dolor immet. Lorem ipsum dolor immet. Lorem ipsum dolor immet. Lorem ipsum dolor immet. Lorem ipsum dolor immet. Lorem ipsum dolor immet.
</div>
<p class="block bottom">In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. In-flow para. </p>
</div><!-- END HTML -->
</body>
.CSS
.block{
width: 200px; padding: 10px;
border: 2px solid;
background-color: yellow }
.top {
margin-bottom: -70px;
opacity: .9 }
.bottom {
opacity: .8;
background-color: red;
margin: 0 }
https://jsfiddle.net/fy9sznjp/1/
有人可以告诉我为什么较低的opacity
子堆叠高于较高的opacity
div。
这两个元素都有一个与1
不同的opacity
属性,所以bottom
显示在top
上,opacity
的值,并不决定它们的绘制顺序。opacity
是否与1
不同才重要。