与不同父母的Z索引

Net*_*eta 7 html css z-index

我在使用z-index时遇到了一些麻烦。这是我的简化布局:

<div id="overlapper"></div>
<div id="container">
    <div id="child1"></div>
    <div id="child2"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

我需要overlapper出现在前面child1但后面child2。我尝试弄乱z索引,但是由于堆栈上下文,它没有用。

有什么帮助吗?谢谢

Ori*_*iol 10

首先,确保overlapperchild1child2属于同一堆叠内容。

也就是说,确保container不创建堆栈上下文:

  • container 不能是根元素。
  • container必须为默认值positionz-indexopacityisolation属性:
    • position: static 要么 z-index: auto
    • opacity: 1
    • isolation: auto

现在,做overlapperchild1child2定位的元素,并添加z-index你想要的。

#overlapper, #child1, #child2 {
  position: relative;
  padding: 30px;
  height: 20px;
}
#overlapper {
  z-index: 3;
  background: red;
  top: 60px;
  margin-left: 20px;
}
#container {
  margin-top: -40px;
}
#child1 {
  z-index: 2;
  background: green;
  top: -40px;
}
#child2 {
  z-index: 4;
  background: blue;
  margin-left: 40px;
}
Run Code Online (Sandbox Code Playgroud)
<div id="overlapper">Overlapper</div>
<div id="container">
    <div id="child1">Child 1</div>
    <div id="child2">Child 2</div>
</div>
Run Code Online (Sandbox Code Playgroud)