Сетка блоков flex
Подскажите пожалуйста, как сделать такую сетку из flex (см.на картинке), может есть пример
При максимальной ширине 1150px, должны становиться в ряд
Ответы (4 шт):
Автор решения: Светлана Свиридова
→ Ссылка
display: flex; flex-wrap: wrap;
фиксировано задавай ширины и высоты блоков!
Автор решения: entithat
→ Ссылка
.parent {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.item {
background: #ddd;
height: 100px;
margin: 5px;
flex-grow: 1;
}
@media only screen and (max-width: 1150px) {
.main {
height: 330px;
width: 400px;
}
.nested {
display: flex;
flex-direction: column;
flex-grow: 2;
}
.nested > .item {
min-width: 100px;
}
.break {
flex-basis: 100%;
height: 0;
}
}
<div class="parent">
<div class="item main"></div>
<div class="nested">
<div class="item"></div>
<div class="item"></div>
</div>
<div class="break"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="break"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
Автор решения: Qwertiy
→ Ссылка
Жуткие костыли на флексе с плоским размещением:
main {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
}
div {
background: silver;
width: 24%;
margin: 1.333% 1.333% 0 0;
}
div::before {
content: "";
display: block;
padding-top: 50%;
}
div:first-child, div:nth-child(2) {
margin-top: 0;
}
div:nth-child(2), div:nth-child(4n + 3) {
margin-right: 0;
}
div:first-child {
width: 65.778%;
margin-bottom: -25%;
}
div:first-child::before {
padding-top: 52%;
}
div:nth-child(2), div:nth-child(3) {
width: 32.889%;
}
div:nth-child(3) {
margin-left: 67.111%;
}
<main>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</main>
Автор решения: Qwertiy
→ Ссылка
main {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1.28fr .72fr 1fr 1fr;
grid-gap: 8px;
}
div {
background: silver;
grid-column: span 2;
}
div::before {
content: "";
display: block;
padding-top: 50%;
}
div:first-child {
grid-row: span 2;
grid-column: span 5;
}
div:nth-child(2), div:nth-child(3) {
grid-column: span 3;
}
<main>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</main>
