В верстке есть такой популярный трюк как clearfix. Этот трюк в основном используется в ситуациях как
здесь.
Без clearfix случилась бы вот
такое. То есть блоки с float выпадают из потока.
А что если решить проблему не используя clearfix, просто задав родителю "overflow: hidden". Вот
пример. Получится меньше кода без всяких посторонних трюков/хаков. Или есть какой-то подвох?