Как сделать так, чтобы блоки распределялись колонками?

Интересная задачка возникла. Не могу придумать, как сделать вот так, как на картинке (только средствами HTML+CSS):

how.jpg

Хоть идейку подкиньте. Важно, чтобы блоки в коде шли подряд. И без использования JS.

По сути, это полный аналог float'а, только блоки нужно перекидывать не построчно, а по колонкам. Нужно какбэ float:top, но такого нет.

Пробовал флекс боксами, тоже не помогло. Там есть свойство flex-direction:column, но оно не перекидывает блоки в новую колонку, пакость такая, в одну фигачит!
  • Вопрос задан
  • 2958 просмотров
Решения вопроса 1
Vakiliy
@Vakiliy
Как вариант можно и так, пример без учета кросса:
body > div {
            display: flex;
            flex-flow: column wrap;
            height: 600px;
            align-content: flex-start;
        }
        div > div  {
            width: 200px;
            height: 150px;
            border: 1px solid #ccc;
            margin: 10px;
        }
        div > div:nth-of-type(4)  {
            height: 300px;
        }
        div > div:nth-of-type(5)  {
            height: 200px;
        }

Данный пример завязан на высоту основного блока, можно не переварачивать ось, и поменять порядок блоков, тогда буде привязка к ширине.

Ну и, ограничение, конечно, в поддержки браузерами flex`а
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
float так работает, разве нет?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы