Я настоятельно рекомендую НЕ использовать такие хаки, как ClearFix. Если вы пытаетесь сохранить
, потому что это не "семантическое", вы создадите себе проблему в дальнейшем. Лучше всего, если вы знаете, что ваш макет не изменится, или вы можете точно сказать, что представляет собой следующий элемент, вы можете использовать следующий элемент, чтобы очистить предыдущие «поплавки». Если вам нужно что-то модульное, например фрагмент HTML, который можно вставить в разные места, всегда добавляйте очищающий DIV.
Также относительно комментария Дэвида:
<div style="clear:both;" />
Будьте осторожны, так как это недопустимый HTML или XHTML. Хотя это кажется действительным с точки зрения XML, оно не учитывает определение документа (как бы оно ни называлось, на которое ссылается тег DOCTYPE). Другими словами, DIV определяется как элемент, который открывается и закрывается отдельным закрывающим тегом. В отличие от
например, который допускает «самозакрытие». Конечно, Firebug и, возможно, другие инструменты для веб-разработчиков иногда отображают DIV, но только так они это отображают.
PPS: на моей работе я обнаружил, что это хорошо работает в некоторых макетах, чтобы исправить несовместимые вертикальные интервалы между элементами при очистке DIVs в IE6 и других браузерах:
Кросс-браузерная очистка:
div.clear { clear:both; overflow:hidden; height:0; }
<div class="clear"></div>
Никогда не используйте встроенный стиль для этого. Во-первых, вам это понадобится часто, а во-вторых, как вы можете видеть выше, может оказаться полезным изменить правило очистки, чтобы исправить некоторые проблемы с браузером.