覆盖/悬停Flexbox容器div中的div

时间:2013-04-19 16:49:47

标签: html css css3 overlay flexbox

我正在尝试覆盖一个可以在flexbox容器中浮动的div。

标题是一个flexbox容器,有三个在容器中工作的flexbox div。覆盖我想覆盖其他三个div但仍然被限制在.header flexbox容器div中。

我在stackoverflow和其他地方尝试了多种方法,但是当结合使用flexbox时,怎么没有看到解决覆盖或分层的解决方案。

感谢您的任何建议!

链接到以下jsfiddle:Link

HTML:

<div class="header">
    <div class="headerLeft">Left</div>
    <div class="headerMiddle">Middle</div>
    <div class="headerRight">Right</div>
    <div class="overlay">Overlay</div>
</div>

CSS:

.header {
    border: 3px solid orange;
    width: 100%;
    display: -webkit-flex;
    display: flex;
    z-index: 0;
}

.headerLeft {
    border: 2px solid chartreuse;
    -webkit-flex: 1;
    flex: 1;
    z-index: 1;
}
.headerMiddle {
    border: 2px solid darkorchid;
    -webkit-flex: 1;
    flex: 1;
    z-index: 1;
}
.headerRight {
    border: 2px solid darkorange;
    -webkit-flex: 1;
    flex: 1;
    z-index: 1;
}

.overlay {
    border: 2px solid green;
    z-index: 10;
    background: rgba(0,0,0,0.3);
}

1 个答案:

答案 0 :(得分:28)

查看所有已注释掉的代码,您在灵活容器上的相对位置处于正确的轨道上。你只需要绝对定位你的叠加元素。

http://jsfiddle.net/UHECE/4/

添加/取消注释这些样式:

.header {
    position: relative;
}

.overlay {
    position: absolute;
    left: 0; top: 0; right: 0; bottom: 0;
}