Как сгруппировать элементы для разных экранов?
Ответы (2 шт):
Автор решения: Vladimir Gonchar
→ Ссылка
Через grid можно (свойство order), с учетом медиа-запросов, само собой. С flex тоже можно, но с сеткой мудрить надо будет.
.blocks {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
.blocks div {
border: 1px solid #000;
align-items: cetner;
justify-content: center;
padding: 100px;
margin: 5px;
text-align: center;
}
.blocks__block3 {
grid-column-start: 1;
grid-column-end: 3;
}
@media(max-width: 800px) {
.blocks {
grid-template-columns: repeat(1, 1fr);
}
.blocks div {
grid-column-start: 1;
grid-column-end: 3;
}
.blocks__block1 {
order: 1;
}
.blocks__block2 {
order: 3;
}
.blocks__block3 {
order: 2;
}
}
<div class="blocks">
<div class="blocks__block1">1</div>
<div class="blocks__block2">2</div>
<div class="blocks__block3">3</div>
</div>
Автор решения: humster_spb
→ Ссылка
И вариант на flex (вдруг понадобится):
.blocks {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.blocks > div {
border: 1px solid #000;
padding: 20px;
}
.blocks__block1,
.blocks__block2 {
width: 30%;
}
.blocks__block3 {
width: 100%;
margin: 50px 0;
height: 200px;
}
@media (max-width: 767px) {
.blocks__block1 {
width: 100%;
order: 1;
}
.blocks__block2 {
width: 100%;
order: 3;
}
.blocks__block3 {
margin: 20px 0;
order: 2;
}
}
<div class="blocks">
<div class="blocks__block1">1</div>
<div class="blocks__block2">2</div>
<div class="blocks__block3">3</div>
</div>
