gpt4 book ai didi

html - 兄弟绝对元素上的 z-index

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:19 25 4
gpt4 key购买 nike

我想弄明白为什么这个例子中的蓝色 div 并不总是在最上面?即为什么红色 div #2 位于蓝色子元素 1 之上。

body {
padding: 30px;
}
.red1 {
position: absolute;
z-index: 1;
width: 400px;
height: 200px;
background: red;
}
.red2 {
position: absolute;
z-index: 1;
width: 400px;
height: 200px;
top: 250px;
background: red;
}
.blue {
z-index: 9;
padding: 10px;
text-align: center;
color: white;
text-transform: uppercase;
position: absolute;
top: 100px;
left: 100px;
width: 150px;
height: 130px;
background: blue;
}
<div class="red1">
<div class="blue">
blue child 1
</div>
</div>
<div class="red2">
<div class="blue">
blue child 2
</div>
</div>

FIDDLE

最佳答案

因为.red1.red2形成不同的层叠上下文。

一个堆栈上下文中的元素不会与另一个堆栈上下文中的元素一起参与。

如果您给 .red2 z-index: -1,您将获得预期的行为 (demo)。

那是因为 .red1.red2 都是绝对定位的,没有定位的祖先。这意味着根元素是它们的直接祖先,并且 the root element forms a stacking context .

更多细节在这里:

关于html - 兄弟绝对元素上的 z-index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com