Если вам не требуется поддержка IE9 или ниже, вы можете свободно использовать flexbox, и вам не нужно использовать плавающие макеты.
Стоит отметить, что сегодня использование плавающих элементов для макета становится все более и более обескураженным с использованием лучших альтернатив.
display: inline-block
- Лучше
- Flexbox - лучший (но ограниченная поддержка браузера)
Flexbox поддерживается в Firefox 18, Chrome 21, Opera 12.10 и Internet Explorer 10, Safari 6.1 (включая Mobile Safari) и браузере Android по умолчанию 4.4.
Подробный список браузеров см .: https://caniuse.com/flexbox .
(Возможно, как только его позиция будет установлена полностью, это может быть абсолютно рекомендуемый способ размещения элементов.)
Очистка - это способ автоматического удаления элемента дочерними элементами , поэтому вам не нужно добавлять дополнительную разметку. Обычно он используется в макетах с плавающей точкой, где элементы размещаются горизонтально.
Clearfix - это способ борьбы с проблемой контейнера нулевой высоты для плавающих элементов.
Исправление выполняется следующим образом:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Или, если вам не требуется поддержка IE <8, тоже хорошо:
.clearfix:after {
content: "";
display: table;
clear: both;
}
Обычно вам нужно сделать что-то следующее:
<div>
<div style="float: left;">Sidebar</div>
<div style="clear: both;"></div> <!-- Clear the float -->
</div>
С clearfix вам нужно только следующее:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Читайте об этом в этой статье - Крис Койер @ CSS-Tricks
div
будет полностью расширена до надлежащей высоты, чтобы охватить его плавающие дочерние элементы . webtoolkit.info/css-clearfix.html