Как сделать такое расположение блоков на flex?

Имеется 3 столбика, как задать высоту, чтобы была подобная сортировка:
5ece4591da3d5840335589.png
Если высота не задана, то все блоки просто идут вниз.
Высота блоков разная, поэтому просто просчитать высоту не как не получится.
Как решить, через js - знаю.


Может хотя бы кто-то подскажет как выравнять:

При сжатии экрана, когда 2 столбика, нужно чтобы не было пустоты между 1 и 3 блоком.
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ответы на вопрос 1
@g33km
Один из вариантов: Codepen
объявляем переменную высоты внутренних блоков (ибо величина динамическая)
:root {
--block-height: 50px;
}

Обертке добавляем свойство
height: calc(var(--block-height) * 3 + 12px));

Теперь высота блока-обертки будет подстраиваться под высоту блоков внутри с учетом их margin-ов (у вас указано для всех блоков margin:2px всего верхних и нижних отступов получается 6, сами блоки - 50px высотой, три блока в колонке, отсюда суммарная высота блока будет 50px*3 + 2px*6=162px)

А дальше (если это возможно через js или другими способами) меняем значение css-переменной --block-height на необходимое значение, таким образом управляем высотой внутренних блоков.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы