У меня есть 3 flexboxes внутри друг друга. Самый внешний flexbox (.flex-1
) содержит заголовок и следующий flexbox (.flex-2
), в котором находится кнопка и самый внутренний flexbox (.flex-3
), который содержит несколько .item
s. В идеале, предметы будут течь вниз, а затем, когда нет свободного места (в зависимости от размера самого внешнего блока), нужно обернуть вправо. Это работает, если высота явно задана на .flex-3
, но я не могу этого сделать, потому что название изменяется по высоте.Flexbox расширяет внешний контейнер вместо обертывания
Вместо этого он переполняется, и предметы отображаются под границей .flex-1
, а также flex-2
, расширяясь, чтобы соответствовать им и переполняться.
.title{width: 100%}
.flex-1{ /* Title and flex-2 */
display: flex;
flex-direction: column;
width: 700px;
height: 700px;
border: 4px black solid;
}
.flex-2{ /* flex-3 and button */
display: flex;
flex-direction: row;
border: 3px #333 solid;
align-items: flex-start;
}
.flex-3{ /* contains items */
display: flex;
flex-direction: column;
flex-wrap: wrap;
border: 2px #888 solid;
flex-grow: 1;
}
.item{
display: block;
width: 200px;
height: 150px;
border:1px #DDD solid;
}
<div class='flex-1'>
<h3 class='title'>THIS IS A TITLE</h3>
<div class='flex-2'>
<div class='flex-3'>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
<div class='item'></div>
</div>
<button>BTN</button>
</div>
</div>
Нет, это не решает проблему. – Shelvacu
Он делает? https://jsfiddle.net/XL2000/su2a5m11/ – Midas
Предположительно для каждого браузера. Firefox 47 на linux не работает: http://i.imgur.com/CDUyHBp.png – Shelvacu