Я уже час бьюсь головой, и я разобрал проблему до самого простого примера, который я могу себе представить, который показывает проблему.
CSS / HTML
<style>
#T div { float: left; }
._b { clear: left; }
</style>
<div id='T'>
<div class='_a'>*</div>
<div class='_b'>*</div>
<div class='_c'>*</div>
<div class='_d'>*</div>
</div>
IE7
***
*
FF, Chrome, Opera
*
***
Результат в FF / Chrome / Opera - это то, что я ожидал. Там нет добавления дополнительной разметки, чтобы исправить это, и я совершенно сбит с толку, как заставить его работать должным образом в IE.
Становится ужасно, когда вы говорите, что 3 - все подряд, а 3 - на одной линии - дополнительные 2 оказываются в первом ряду.
Я действительно надеюсь, что кто-то знает обходной путь для этого.
Установка ширины плавающих элементов div не помогает и не имеет ширины родительского элемента, потому что это простой пример. Представьте, что в каждой строке может быть 1-5 элементов, и тогда вы сможете увидеть проблему.