Вы можете использовать CSS3 Grid layout, определить 2 явных строки высотой 50px и неявные столбцы шириной 50px каждая, затем добавить следующие ограничения к элементам сетки:
- Директор охватывает 2 строки (отначало 1-го до конца последнего) и принудительно вводится в 1-й столбец
- .d1 статьи находятся в 1-м ряду
- .d2 статьи во 2-м ряду
Вот и все, третья строка невозможна, если вы добавляете элементы, но они будут переполнены справа от вашего фиксированного контейнера сетки шириной 220px.Вам решать, нужно ли вам использовать MQ, горизонтальную полосу прокрутки или позволить ей переполниться.
2-й директор будет превосходить существующий, но он должен соответствовать вашим требованиям.Иначе, удалите этот grid-column: 1
и оставьте первый как первый элемент сетки, если хотите, чтобы он находился слева.
.container {
display: grid;
grid-template-rows: 50px 50px;
grid-auto-columns: 50px;
border: 1px solid lightgray;
width: 220px;
}
.dir {
grid-row: 1 / -1;
grid-column: 1;
}
.d1 {
grid-row: 1;
}
.d2 {
grid-row: 2;
}
article { border: 1px dotted; }
.dir {background: green;}
.d1 {background: lightblue;}
.d2 {background: lightgray;}
<div class="container">
<article class="dir">lft mid</article>
<article class="d1">d11</article>
<article class="d1">d12</article>
<article class="d1">d13</article>
<article class="d2">d21</article>
<article class="d2">d22</article>
</div>
⇒ Codepen