Невозможно выполнить именно то, что вы изобразили в HTML/CSS, при этом предоставляя любую гибкость или простоту воспроизведения, хотя есть аккуратная библиотека Javascript под названием Packery, которая делает именно то, что вы хотите.
http://packery.metafizzy.co/
EDIT:
Вот рабочий пример того, что вы после использования Packery, с более новыми версиями вы на самом деле не нужно писать Javascript, что делает панель для ввода гораздо ниже ,
http://jsfiddle.net/s9crmo9d/8/
<div id="container" class="js-packery"
data-packery-options='{ "itemSelector": ".item", "gutter": 10 }'>
<div class="item red small"></div>
<div class="item green large"></div>
<div class="item orange small"></div>
<div class="item red large"></div>
<div class="item green large"></div>
<div class="item orange large"></div>
<div class="item red large"></div>
<div class="item green large"></div>
<div class="item orange small"></div>
</div>
Это можно было бы считать дубликатом, а также, хотя он не был специально просить макет кладки CSS основе.
Is it possible to use flexbox/CSS to create a masonry layout?
Не могли бы вы поставить проблему в jsfiddle? – frenchie
Добавление демонстрации не повредит. – nicael
Похоже, css flexbox может быть вашим другом здесь, но это зависит от настройки: не могли бы вы a) указать красные блоки, чтобы объяснить, в каком порядке вы хотите отображать их? б) объяснить некоторые из ограничений, которые вы пытаетесь достичь? (Все столбцы всегда должны быть одинаковой высоты? Исправлена высота столбца? Divs растягивались вертикально, чтобы гарантировать, что столбцы равны высоте? Исправлено количество столбцов?) C) предоставить демо (код вместо изображения)? – wintvelt