Antigamente para resolver o float, vulgo não quebrar o layout, era preciso criar um novo elemento apenas para limpar o float, agora com essa técnica não precisamos mais sujar o HTML!

Teoria de como resolver o float
Para resolver este problema com o próprio elemento que tem os floats, nós devemos primeiramente ter uma estrutura de componente
Quer se especializar em HTML e CSS? Veja o nosso catálogo de cursos.
Esta estrutura basicamente consiste em um container, uma div simples, que abrigará estes elementos que possuem float no nosso layout
E então este elemento pai terá um pseudo-elemento :after, que é a chave para resolver o problema
Neste :after vamos adicionar um conteúdo vazio, que simulará a div que adicionaríamos da maneira antiga no HTML e então colocamos um clear:both nele, simples né? 😀
Resolvendo o float na prática
Primeiramente vamos ver como o float pode prejudicar o layout, caso não seja tratado
Segue o código e o resultado:
<!-- HTML -->
<div id="float-container">
<div class="float-div">
</div>
<div class="float-div">
</div>
</div>
<div id="continuando-layout"></div>
/* CSS */
body {
margin: 50px;
}
.float-div {
width: 100px;
height: 100px;
background-color: red;
margin-right: 20px;
float: left;
}
#continuando-layout {
height: 50px;
width: 300px;
background-color: magenta;
position: relative;
}
Resultado:

A div sem float tomou a frente da div com float, e isso é o que acontece quando não tratamos o float corretamente
Agora com a seguinte adição de CSS, veja como o layout se comporta
/* adição de CSS */
#float-container:after {
content: "";
display: block;
clear: both;
}
Resultado:

Perceba que agora, com a técnica correta o resultado do layout é o esperado do fluxo que o HTML representa, fácil não é? 🙂
Não precisamos mais sujar o HTML com uma div ‘inútil’, deixando assim nosso código mais fácil para uma futura manutenção e também para entender ele
Conclusão
Vimos que a técnica consiste em adicionar um pseudo-elemento :after, no container que abriga os elementos com float
E aí aplicar as regras necessárias do content vazio, para que aí esta mesma div dos floats se encarregue de limpar o float
E por hoje é isso, até o próximo post!
Confira também nosso curso de HTML e CSS gratuito no YouTube clicando aqui! Onde criamos um site do 0 até o resposivo