#html #css
Вопрос:
Я пытаюсь реализовать отображение элементов div, как на изображении, показанном ниже, с помощью свойства display: flex. Слева показано, как это должно отображаться на экранах мобильных устройств, а справа-как это должно отображаться на больших экранах. Мне интересно, может ли кто-нибудь мне помочь, так как я вообще не могу этого сделать.
Комментарии:
1. было бы проще с сеткой. Что вы пробовали до сих пор? Альтернативно найдите сетку или макет кладки и покажите свою попытку.
2. Вы не можете сделать это с помощью flex, так как он работает только в «2D». Вы можете использовать сетку, которая позволяет упорядочивать элементы одновременно по горизонтали и вертикали. Прочитайте moderncss.dev/3-методы css-сетки, чтобы преобразовать вас в сетку, в качестве вступления к сетке.
Ответ №1:
вы должны использовать css grid
вместо этого, это намного проще.
см. фрагмент:
.grid {
display: grid;
grid-template-areas: "g1 g1 g1 g2" "g3 g3 g4 g2" ". . g4 .";
gap: 10px;
grid-auto-rows: 1fr
}
.g1 {
background: red;
grid-area: g1;
min-height: 60px;
}
.g2 {
background: green;
grid-area: g2;
min-height: 60px;
}
.g3 {
background: blue;
grid-area: g3;
min-height: 60px;
}
.g4 {
background: yellow;
grid-area: g4;
min-height: 60px;
}
@media (max-width: 500px) {
.grid {
grid-template-areas: "g1" "g2" "g3" "g4";
}
}
<div class='grid'>
<div class='g1'>1</div>
<div class='g2'>2</div>
<div class='g3'>3</div>
<div class='g4'>4</div>
</div>