Я пытаюсь наложить div, который будет плавать в контейнере flexbox.

Заголовок представляет собой контейнер flexbox, и в нем работают три элемента div flexbox. Наложение, которое я хочу наложить на остальные три блока div, но все же оно должно быть ограничено внутри блока контейнера flexbox .header.

Я пробовал несколько методов в stackoverflow и в других местах, но как не видел решения, которое устраняет наложение или наслоение при использовании в сочетании с flexbox.

Спасибо за любые предложения!

Ссылка на jsfiddle следующего: Ссылка

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);
}
15
karlgo 19 Апр 2013 в 20:49

1 ответ

Лучший ответ

Глядя на весь закомментированный код, вы были на правильном пути с относительным позиционированием гибкого контейнера. Вам просто нужно было абсолютно позиционировать свой элемент наложения.

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

Добавьте / раскомментируйте эти стили:

.header {
    position: relative;
}

.overlay {
    position: absolute;
    left: 0; top: 0; right: 0; bottom: 0;
}
41
cimmanon 19 Апр 2013 в 23:24
Cimmanon, можно ли его адаптировать, если родительский контейнер является гибким боксом? stackoverflow.com/q/50992090/1971447
 – 
P. Waksman
27 Июн 2018 в 21:52