Якщо вам не потрібно підтримувати IE9 або новішу версію, ви можете вільно користуватися flexbox і не потрібно використовувати плаваючі макети.
Варто зауважити, що сьогодні використання плаваючих елементів для компонування стає все більше і більше відштовхується від використання кращих альтернатив.
display: inline-block
- Краще
- Flexbox - найкращий (але обмежена підтримка браузера)
Flexbox підтримується від Firefox 18, Chrome 21, Opera 12.10 та Internet Explorer 10, Safari 6.1 (включаючи мобільний Safari) та браузера Android за замовчуванням 4.4.
Детальний список браузера див: https://caniuse.com/flexbox .
(Можливо, коли його позиція буде повністю встановлена, це може бути абсолютно рекомендований спосіб укладання елементів.)
Очищення - це спосіб для елемента автоматично очистити його дочірні елементи , так що вам не потрібно буде додавати додаткову розмітку. Зазвичай він використовується в плаваючих макетах, де елементи, що плавають, розміщуються горизонтально.
Виправлення - це спосіб боротьби з проблемою контейнера нульової висоти для плаваючих елементів
Чітке виправлення виконується наступним чином:
.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>
З чітким виправленням потрібно лише таке:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Про це читайте в цій статті - від Chris Coyer @ CSS-Tricks
div
повністю розшириться до належної висоти, щоб закрити своїх плаваючих дітей. webtoolkit.info/css-clearfix.html