Итак, я создаю сеточную систему на основе flexbox, и все идет довольно гладко. Основы моей сетки:
<div class="row">
<div class="column"><p>Column</p></div>
<div class="column"><p>Column</p></div>
<div class="column"><p>Column</p></div>
</div>
И в моем css:
.row {
margin: 10px 0;
display: flex;
flex-wrap: wrap;
}
.column {
padding: 10px;
flex: 1 1 0%;
}
По сути, это делает колонки достаточно текучими, и они сжимаются / растут, заполняя все доступное пространство. Это здорово для меня, так как мне нужно использовать это в различных проектах, где я не могу полностью настроить сетку для каждого. Однако я столкнулся с небольшой «проблемой». Я собирался создать класс с именем «.collapse», чтобы можно было свернуть левый / правый отступ, чтобы некоторые столбцы совпали сразу друг с другом (например: если я хотел использовать div с цветом фона (добавив цветовой класс кcolumn => .column .green), чтобы перейти к изображению в следующем столбце). Тем не менее, интервал все не в порядке, по сравнению со строкой / столбцами над ним.
<div class="row">
<div class="column purple collapse"><p>Column</p></div>
<div class="column red collapse"><p>Column</p></div>
<div class="column purple collapse"><p>Column</p></div>
<div class="column red collapse"><p>Column</p></div>
</div>
пример скриншота здесь Как вы можете видеть в моем небольшом примере макета, они действительно выстраиваются в линию, но правая и левая поля «уменьшились». Есть ли какой-нибудь умный способ обойти это? Я попытался добавить «левые / правые поля» к типу first-type и last-of-type, но это просто становится немного хакерским, так как после добавления чего-либо между ними начинаются странные проблемы с выравниванием.