堆叠上下文:将一个 child div 放在另一个之上

Stacking Context: Putting one child div above another

我不是很明白堆叠上下文的规则我在这里不明白。我有一条 'divider' 行 ('divider-line'),我想将其放在框 div ('block') 后面。

这是HTML:

<div class="report-title">
  <div class="divider-line"></div>
  <div class="block">
    <div class="icon">0</div>
    <h1 class="text">FOO BAR</h1>
  </div>
</div>

这里是 CSS(w/scss 嵌套):

.report-title {
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
  width: 100%;
  margin: 100px 0;

  .block {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: -100px;
    z-index: 10;
    height: 200px;
    width: 475px;
    .icon {
      font-size: 9rem;
    }
    .text {
      display: block;
    }
  }

  .divider-line {
    width: 100%;
    height: 1px;
    background-color: gray;
  }
}

HTML 上下文,让 'divider-line' child 出现在它的兄弟 'block' 之前应该把它放在后面不是吗? 'block' 上的 10 的 z-index 没有做任何事情,我也尝试将 -1 的 z-index 放在 'divider-line' 上(无济于事)。

任何建议或指导都会很棒,

在您的示例中没有 z-index,向块添加背景颜色表明分隔线在块后面。

.report-title {
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
  width: 100%;
  margin: 100px 0;
}

.block {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  background-color: #FFF;
  top: -100px;
  height: 200px;
  width: 475px;
}

.icon {
  font-size: 9rem;
}

.text {
  display: block;
}
 
.divider-line {
    width: 100%;
    height: 1px;
    background-color: gray;
}
<div class="report-title">
  <div class="divider-line"></div>
  <div class="block">
    <div class="icon">0</div>
    <h1 class="text">FOO BAR</h1>
  </div>
</div>