Ваше изображение №2 , а не , что происходит, когда элементы перемещаются влево. Вы можете увидеть пример того, что произойдет на этой скрипке .
А если вас интересует причина :
Плавающая коробка смещается влево или вправо, пока ее внешний край не коснется края содержащего блока или внешнего края другого поплавка. Если имеется линейный блок, внешняя верхняя часть плавающего блока выравнивается с верхней частью текущего линейного блока.
Если вы заранее знаете, насколько широким будет контейнер, вы можете установить для каждого :nth-child()
значение clear:left
, отображаемое в строке.
в скрипке можно добавить:
div:nth-child(3n)
{
clear: left;
}
В css и все будет правильно выровнено. Проблема будет в том, если вы хотите, чтобы текучий макет с автоматически настраиваемыми строками. Вам нужно будет использовать JavaScript для настройки стилей элементов при изменении размера.