我想要一个flex项(.tag-preview-container
)的绝对定位子元素(.image-container
)来重叠DOM中的其他元素(例如标题.header
)。我将绝对定位元素的z-index
设置为2(即使1应该起作用)。但是,元素不会与Flex容器外的任何DOM元素(.tags-panel
)重叠。事实上,它完全被容器切断了。我没有设置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>
这是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;
}
}
答案 0 :(得分:6)
public class Setup extends Activity {
受z-index
中overflow
属性的影响,删除.tags-panel
将解决问题。这是更新的小提琴https://jsfiddle.net/yc5xanax/
overflow-y: auto;
将自动包装/隐藏overflow-y: auto;
容器外的内容。