Единственное решение этой проблемы - одно из трех: укажите clear: both ;, укажите ширину по умолчанию или выполните одно или оба из них динамически с помощью jquery / javascript. Пока вы позволяете контенту определять высоту и ширину, вы столкнетесь с проблемами.
Использование очистки: оба; на все div поместит каждый float в свой собственный ряд. Это не похоже на то, что вы хотите.
Указание ширины будет наиболее предсказуемым. Браузер учитывает ширину и очистит до следующей строки, если места недостаточно.
Если вы загружаете контент динамически, для которого требуется определенная ширина, тогда должно быть тривиально динамически корректировать соответствующую ширину div. Вы можете проверить длину содержимого и назначить ширину div, получающему содержимое, если содержимое слишком длинное. Поскольку у нас нет вашего кода, вам придется поэкспериментировать с длиной и шириной, чтобы получить его правильно.
Содержимое, которое вы загружаете, представляет собой простой текст или содержит элементы div и другие элементы уровня блока?
Как это плавало? это смесь поплавка: слева; и плавать: правильно; ? или это все в одну сторону?