FLexbox является линейным, а Grid - двухмерным.Есть множество способов приблизиться к этому.но вам нужно использовать flex-wrap: no-wrap
.
Я бы сначала определил гибкую строку.
.outerRow {
display: 'flex';
# Do not allow wrap (event though this is default)
flex-wrap: 'no-wrap';
# Fill the full height
align-items: 'stretch';
}
Теперь ваши столбцы.Если вам нужны два столбца 25% и один столбец 50%, сделайте так:
.quarter {
flex-grow: 1;
}
.half {
flex-grow: 2;
}
обратите внимание, что это отношения.
, тогда вам нужно сделать классы столбцов:
.column {
display: 'flex';
# Make this a flex-column
flex-direction: 'column';
# Do not allow wrap (event though this is default)
flex-wrap: 'no-wrap';
# Fill the full width
align-items: 'stretch';
}
тогда внутри этих столбцов вы можете сделать линейное сгибание.Вы можете использовать классы quarterColumn или halfColumn сверху ...... или вы можете отредактировать класс следующим образом:
.column {
display: 'flex';
flex-direction: 'column';
flex-wrap: 'no-wrap';
# Everything floats to flex-start (event though this is default)
justify-content: 'flex-start';
}
заполнить столбцы элементами уровня блока и в конечном итоге создать разнесенную сетку в стиле pinterest.
<div class="outerRow">
<div class="quarter column">
<div></div>
<div></div>
<div></div>
</div>
<div class="half column">
<div></div>
<div></div>
<div></div>
</div>
<div class="quarter column">
<div></div>
<div></div>
<div></div>
</div>
</div>
или, если вы хотите, чтобы они были одинаковыми:
<div class="outerRow">
<div class="quarter column">
<div class="half"></div>
<div class="half"></div>
<div class="half"></div>
</div>
<div class="half column">
<div class="half"></div>
<div class="half"></div>
<div class="half"></div>
</div>
<div class="quarter column">
<div class="half"></div>
<div class="half"></div>
<div class="half"></div>
</div>
</div>
помните, что значения flex-grow являются отношениями друг с другом
read https://css -tricks.com/snippets/css/a-guide-to-flexbox/
:)