Мне нужно реализовать довольно заурядный макет кладки. Однако по ряду причин я не хочу использовать JavaScript для этого.
Параметры:
- Все элементы имеют одинаковую ширину
- Элементы имеют высоту, которая не может быть рассчитана на стороне сервера (изображение плюс различные объемы текста)
- Я могу жить с фиксированным количеством столбцов, если мне нужно
Существует тривиальное решение, которое работает в современных браузерах, свойство column-count
.
Проблема с этим решением состоит в том, что элементы упорядочены в столбцах:
Хотя мне нужно упорядочить элементы в строках, хотя бы примерно:
Подходы, которые я пробовал, не работают:
- Создание элементов
display: inline-block
: тратит впустую вертикальное пространство. - Заставить предметы
float: left
: лол, нет.
Теперь я могу изменить рендеринг на стороне сервера и изменить порядок элементов, деля количество элементов на количество столбцов, но это сложно, подвержено ошибкам (в зависимости от того, как браузеры решают разбить список элементов на столбцы), поэтому я хотел бы чтобы избежать этого, если это возможно.
Есть ли какое-то новое волшебство flexbox, которое делает это возможным?