绝对元素 z-index 内的固定元素不起作用

Fixed element inside absolute element z-index does not work

我得到了两个 absolute 具有相同 z-index 的元素。 其中之一的 fixed-position child 比 parent.

更高 z-index

为什么 child 仅与 parent 重叠,而不与另一个具有较低 z-index 的绝对元素重叠。 如何实现 child 与两个较低的 z-index 元素重叠?

.lower-element {
  background: green;
  width: 3em;
  height: 3em;
  position: absolute;
  z-index: 10;
}

.higher-element {
  background: blue;
  width: 100vw;
  height: 100vh;
  position: fixed;
  opacity: .5;
  z-index: 20;
}

.lower-element-1 {
  top: 5em;
}
<div class="lower-element">
  <div class="higher-element">
  </div>
</div>

<div class="lower-element lower-element-1">
</div>

position: fixedposition: absolute 仅适用于 topbottomleftright 值。

.lower-element {
  background: green;
  width: 3em;
  height: 3em;
  position: absolute;
  z-index: 10;
}

.higher-element {
  background: blue;
  width: 100vw;
  height: 100vh;
  position: fixed;
  opacity: .5;
  z-index: 20;
  top:5em; /* I added */
}

.lower-element-1 {
  top: 5em;
}
<div class="lower-element">
  <div class="higher-element">
  </div>
</div>

<div class="lower-element lower-element-1">
</div>

删除所有 z-index 并仅添加到 .higher-element : z-index: -1;

.lower-element {
  background: green;
  width: 3em;
  height: 3em;
  position: absolute;
}

.higher-element {
  background: blue;
  width: 100vw;
  height: 100vh;
  position: fixed;
  opacity: .5;
  z-index: -1;
}

.lower-element-1 {
  top: 5em;
}
<div class="lower-element">
  <div class="higher-element">
  </div>
</div>

<div class="lower-element lower-element-1">
</div>

通过让 .higher-element.lower-element 成为兄弟姐妹,然后设置 .higher-elementz-index: -1

.lower-element {
  background: green;
  width: 3em;
  height: 3em;
  position: absolute;
  z-index: 10;
}

.higher-element {
  background: blue;
  width: 100vw;
  height: 100vh;
  position: fixed;
  opacity: .5;
  z-index: -1;
}

.lower-element-1 {
  top: 5em;
}
<div class="lower-element"> 
</div>
<div class="higher-element">
</div>
<div class="lower-element lower-element-1">
</div>