возьмите, к примеру, этот код:
<div>Airplane</div>
<div style="float: left;">Symba</div><div style="float:right;">Chewbacca(?)</div>
Вы не ожидаете, что вершина Чубакки (?) Совпадет с вершиной Самолета! это будет соответствовать вершине Symba.
У Symba есть поплавок: слева, поэтому он находится под самолетом. неважно, летает самолет или нет.
Я видел макеты, которые делают то, что вы хотите, применяя float: left ко ВСЕМ элементам, а затем используя некоторый Javascript, чтобы убрать пустое пространство после загрузки страницы (float: left самостоятельно) т, как вы уже могли заметить). Мне не нравится это решение, но единственная альтернатива, о которой я могу подумать, - это предварительно отсортировать изображения по двум столбцам и разбить их соответствующим образом:
<div style="float:left">
<div>Myst(?)</div>
<div>Airplane</div>
<div>Symba</div>
</div>
<div style="float:right">
<div>Coastline</div>
<div>Painter</div>
<div>Chewbacca(?)</div>
</div>
но если вы хотите, чтобы столбцы всегда были равными по высоте, это может не сработать для вас, если вы заранее не знаете высоты изображений и можете на основе этого размещать элементы в столбцах. (зацикливание, сохраняя счет текущей высоты и всегда добавляя к более короткому столбцу; что-то в этом роде.)