Вы пытаетесь сделать это с динамическим ростом.К сожалению, браузер не может определить, когда и где он должен перенести второго дочернего элемента в следующий столбец, если вы это сделаете.Все это помещается в одну колонку, потому что вы на самом деле не сказали, какой высоты должен быть гибкий контейнер.Добавление высоты и замена объявлений flex для flex: 1 1 auto
и flex: 1 1 100%
создает перенос во второй столбец, которого вы, похоже, пытаетесь достичь.
.main {
width: 400px;
}
.box {
width: 50%;
display: flex;
flex-direction: column;
flex-wrap: wrap;
/* without this, it doesn't wrap to
a second column. You can change
this to whatever height best fits
your requirements. */
height: 100px;
}
.box>* {
flex: 1 1 auto;
width: 70%;
box-sizing: border-box;
border: 1px solid red;
}
.box>div:nth-child(2) {
flex-basis: 100%;
width: 30%;
order: 3;
}
<div class="main">
<div class="box">
<div>One</div>
<div>Two
<p>paragraph</p>
</div>
<div>Three</div>
</div>
</div>