Se você não precisa oferecer suporte ao IE9 ou inferior, pode usar o flexbox livremente e não precisa usar layouts flutuantes.
Vale ressaltar que hoje, o uso de elementos flutuantes no layout está ficando cada vez mais desencorajado com o uso de melhores alternativas.
display: inline-block
- Melhor
- Flexbox - melhor (mas suporte limitado ao navegador)
O Flexbox é suportado no Firefox 18, Chrome 21, Opera 12.10 e Internet Explorer 10, Safari 6.1 (incluindo o Mobile Safari) e no navegador padrão do Android 4.4.
Para uma lista detalhada de navegadores, consulte: https://caniuse.com/flexbox .
(Talvez uma vez que sua posição esteja completamente estabelecida, talvez seja a maneira absolutamente recomendada de apresentar elementos.)
Um clearfix é uma maneira de um elemento limpar automaticamente seus elementos filhos , para que você não precise adicionar marcações adicionais. Geralmente é usado em layouts de flutuador, onde os elementos são flutuados para serem empilhados horizontalmente.
O clearfix é uma maneira de combater o problema do contêiner de altura zero para elementos flutuantes
Um clearfix é executado da seguinte maneira:
.clearfix:after {
content: " "; /* Older browser do not support empty content */
visibility: hidden;
display: block;
height: 0;
clear: both;
}
Ou, se você não precisar de suporte do IE <8, o seguinte também é bom:
.clearfix:after {
content: "";
display: table;
clear: both;
}
Normalmente você precisaria fazer o seguinte:
<div>
<div style="float: left;">Sidebar</div>
<div style="clear: both;"></div> <!-- Clear the float -->
</div>
Com o clearfix, você só precisa do seguinte:
<div class="clearfix">
<div style="float: left;" class="clearfix">Sidebar</div>
<!-- No Clearing div! -->
</div>
Leia sobre isso neste artigo - por Chris Coyer @ CSS-Tricks
div
seja totalmente expandida para a altura adequada para incluir seus filhos flutuantes. webtoolkit.info/css-clearfix.html