Se non è necessario supportare IE9 o versioni precedenti, è possibile utilizzare liberamente flexbox e non è necessario utilizzare layout fluttuati.
Vale la pena notare che oggi, l'uso di elementi fluttuati per il layout sta diventando sempre più scoraggiato dall'uso di alternative migliori.
display: inline-block
- Meglio
- Flexbox - Migliore (ma supporto browser limitato)
Flexbox è supportato da Firefox 18, Chrome 21, Opera 12.10 e Internet Explorer 10, Safari 6.1 (incluso Safari mobile) e dal browser predefinito 4.4 di Android.
Per un elenco dettagliato del browser, consultare: https://caniuse.com/flexbox .
(Forse una volta che la sua posizione sarà completamente stabilita, potrebbe essere il modo assolutamente consigliato di disporre gli elementi.)
Un clearfix è un modo per un elemento di cancellare automaticamente i suoi elementi figlio , quindi non è necessario aggiungere un markup aggiuntivo. Viene generalmente utilizzato nei layout float in cui gli elementi vengono flottati per essere impilati orizzontalmente.
Il clearfix è un modo per combattere il problema del contenitore ad altezza zero per gli elementi mobili
Un clearfix viene eseguito come segue:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Oppure, se non hai bisogno di supporto per IE <8, anche il seguente va bene:
.clearfix:after {
content: "";
display: table;
clear: both;
}
Normalmente dovresti fare qualcosa come segue:
<div>
<div style="float: left;">Sidebar</div>
<div style="clear: both;"></div> <!-- Clear the float -->
</div>
Con clearfix, hai solo bisogno di quanto segue:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Leggilo in questo articolo - di Chris Coyer @ CSS-Tricks
div
si espanderà completamente all'altezza corretta per racchiudere i suoi figli galleggianti. webtoolkit.info/css-clearfix.html