flex项的子元素的z-index

qua*_*ddy 4 html css z-index css3 flexbox

我想要一个.tag-preview-containerflex item(.image-container)的绝对定位子元素()来重叠DOM中的其他元素(例如标题.header).我z-index将绝对定位元素设置为2(即使1应该工作).但是,该元素不会与flex容器(.tags-panel)外部的任何DOM元素重叠.事实上,它完全被容器切断了.我没有设置DOM中任何其他元素的z-index,因此根应该是堆叠上下文.

<div class="panel-container">
  <div class="header">

  </div>
  <div class="tags-panel">
    <div class="image-container">
      <div class="tag-preview-container">
      </div>
    </div>
    <div class="image-container">

    </div>
    <div class="image-container">

    </div>
    <div class="image-container">

    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是scss代码,这里是JSFiddle

.panel-container {
    width: 400px;
  height: 400px;
  position: relative;
  margin: auto;
  .header {
    width: 100%;
    height: 40px;
    background-color: green;
  }
  .tags-panel {
    position: absolute;
    background-color: red;
    top: 40px;
    bottom: 0px;
    width: 100%;
    overflow-y: auto;
    display: flex;
    flex-flow: row wrap;
    align-content: flex-start;
  }
}

.image-container {
  flex: 0 0 33%;
  box-sizing: border-box;
  border: 1px solid black;
  margin-top: 5px;
  margin-left: 1px;
  height: 80px;
  background-color: yellow;
  position: relative;
  .tag-preview-container {
    background-color: black;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 200px;
    height: 200px;
    z-index: 2;
    opacity: 0.5;
  }
}
Run Code Online (Sandbox Code Playgroud)

Sar*_*n I 6

z-index受影响的overflow财产.tags-panel,除overflow-y: auto;将解决这个问题.这是更新的小提琴https://jsfiddle.net/yc5xanax/

overflow-y: auto;将自动包装/隐藏.tags-panel容器外的内容.