Чего я пытаюсь достичь:
Есть 4 элемента сетки. При максимальном размере экрана я бы хотел, чтобы элементы располагались в ряд:
item_1 item_2 item_3 item_4
Поскольку ширина экрана уменьшается, я бы хотел, чтобы элементы переносились в следующий ряд следующим образом:
item_1 item_2
item_3 item_4
Тогда, наконец, в самом узком, я бы хотел, чтобы время было одним столбцом
item_1
item_2
item_3
item_4
Я нашел пример, который делает это, но только оборачивает следующий элемент, когда это возможно - https://labs.jensimmons.com/2017/03-009.html
Построение этого я пытался использовать вложенные контейнеры сетки на основе модели примера:
grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));
HTML
<div class="outer_grid">
<div class="grid">
<div class="item">item 1</div>
<div class="item">item 2</div>
</div>
<div class="grid">
<div class="item">item 3</div>
<div class="item">item 4</div>
</div>
</div>
CSS
.outer_grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(600px, 1fr));
grid-template-row:1fr 1fr;
grid-gap:1em;
border:5px solid blue;
}
.grid {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-template-row:1fr 1fr;
grid-gap:1em;
border:5px solid green;
height:200px;
}
.item {
border:2px solid red;
}
Это почти работает (см. Ниже), но я не уверен, что это правильный подход или есть лучший способ сделать это. Я тоже пытался использовать Flexbox, но выбрал CSS Grid из-за функции разрыва сетки. Кроме того, я знаю, что это можно сделать, но я пытаюсь сделать это без медиа-запросов.
https://codepen.io/anon/pen/LMqWEr?editors=1100