Поскольку некоторые заголовки длиннее других, некоторые переводят строку и тем самым делят текст выше. Затем поплавки будут «висеть» на этих высоких элементах div. Это не ошибка как таковая, просто работа плавающей.
--- --- ---
|1| |2| |3|
--- | | ---
--- ---
|4|
---
---
|5|
---
Лучший способ избежать этой проблемы - дать каждому div установленную высоту.
В качестве альтернативы, вы можете получить первый div каждой строки «clear: left», добавив соответствующий класс к каждому первому / четвертому / седьмому / etc div.
РЕДАКТИРОВАТЬ: Чтобы уточнить, как это происходит:
Каждый div пытается поместиться на той же строке, что и предыдущий div, и перемещается как можно левее Если на линии не осталось места, она сначала будет нажата, а затем оставлена. В приведенном выше примере 4 будет сброшен на 3, затем он сместится влево настолько далеко, насколько это возможно, удар по 2. 5 будет сброшен на 4, а затем сместится влево настолько далеко, насколько это возможно.