Если вам не требуется поддержка 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.
Подробный список браузеров см .: http://caniuse.com/flexbox.
(Возможно, как только его позиция будет установлена полностью, это может быть абсолютно рекомендуемый способ размещения элементов.)
Очистка - это способ для элемента автоматически очищать его дочерние элементы , поэтому вам не нужно добавлять дополнительную разметку. Обычно он используется в макетах с плавающей точкой , где элементы смещаются для горизонтальной укладки.
Исправление - это способ борьбы с проблемой контейнера нулевой высоты для плавающих элементов
Исправление выполняется следующим образом:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Или, если вам не требуется поддержка IE <8, тоже хорошо: </p>
.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