edit
после просмотра вашего вопроса обновления , mediaquerie, flex
, order
и псевдо, чтобы создать этот пустой пробел, должно быть достаточно,По-прежнему с каждыми 3 полями прямой дочерний элемент .container
.
запускает фрагмент кода в полноэкранном режиме и изменяет размер браузера, установив точку останова в 700px для демонстрационной версии.
* {
box-sizing: border-box;
margin: 0;
}
.container {
display: flex;
flex-wrap: wrap;
}
.divA {
background: lightgreen;
}
.divB {
background: lightblue;
}
.divC {
background: rgb(255, 255, 0);
}
.container>div,
.container:before {
flex: 1;
min-width: 40%;
padding: 1em 0;
text-align: center;
}
@media (min-width: 700px) {
/* upadte here the px value where you swhitch to happen . 500px */
.divA,
.divC {
order: 1;
flex: 0 1 40%;
}
.container .divB,
.container .divC {
flex: 0 1 60%;
}
.container:before {
content: "";
flex: 0 1 40%;
}
}
<div class="container">
<div class="divA">
A
</div>
<div class="divB">
B
</div>
<div class="divC">
C
</div>
</div>
оригинальный ответ, оставленный здесь для информации
Вы можете переключиться с гибкого макета на таблицу илимакет сетки с каждым элементом в виде одноуровневых элементов, здесь нет необходимости в дополнительной разметке.
пример: flex / table, это было бы для браузера, все еще имеющего проблемы с сеткой
.container {
display: flex;
flex-wrap: wrap;
}
.container>div {
flex: 1;
border: solid;
min-width: 40%;
}
/* set here the width where you want switching layout */
@media screen and (max-width: 600px) {
.container {
display: table;
width: 100%;
table-layout: fixed;
;
}
.divA {
display: table-cell;
width: 50%;
}
<div class="container">
<div class="divA">
A
</div>
<div class="divB">
B
</div>
<div class="divC">
C
</div>
</div>
или сетка ( интеллектуальная версия IE, которая частично поддерживает сетку и требует установки grid-row / grid-column или grid-area для каждого потомка)
.container {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
.container>div {
border: solid;
}
.divC {
grid-row: 2;
grid-column:1 / span 2;
}
/* set here the width where you want switching layout */
@media screen and (max-width: 600px) {
.divC {
grid-row: 1 / span 2;
grid-column: 1;
}
<div class="container">
<div class="divA">
A
</div>
<div class="divB">
B
</div>
<div class="divC">
C
</div>
</div>