Si no necesita admitir IE9 o inferior, puede usar flexbox libremente, y no necesita usar diseños flotantes.
Vale la pena señalar que hoy en día, el uso de elementos flotantes para el diseño se desalienta cada vez más con el uso de mejores alternativas.
display: inline-block
- Mejor
- Flexbox : el mejor (pero limitado soporte de navegador)
Flexbox es compatible con Firefox 18, Chrome 21, Opera 12.10 e Internet Explorer 10, Safari 6.1 (incluido Mobile Safari) y el navegador predeterminado de Android 4.4.
Para obtener una lista detallada del navegador, consulte: https://caniuse.com/flexbox .
(Quizás una vez que su posición se haya establecido por completo, puede ser la forma absolutamente recomendada de diseñar elementos).
Un clearfix es una forma en que un elemento borra automáticamente sus elementos secundarios , de modo que no necesita agregar un marcado adicional. Generalmente se usa en diseños de flotación donde los elementos flotan para apilarse horizontalmente.
El clearfix es una forma de combatir el problema del contenedor de altura cero para elementos flotantes
Un clearfix se realiza de la siguiente manera:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
O, si no necesita soporte para IE <8, lo siguiente también está bien:
.clearfix:after {
content: "";
display: table;
clear: both;
}
Normalmente debería hacer algo de la siguiente manera:
<div>
<div style="float: left;">Sidebar</div>
<div style="clear: both;"></div> <!-- Clear the float -->
</div>
Con clearfix, solo necesita lo siguiente:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Lea sobre esto en este artículo - por Chris Coyer @ CSS-Tricks
div
se expandirá completamente a la altura adecuada para encerrar a sus hijos flotantes. webtoolkit.info/css-clearfix.html