Cancelando a flutuação com a propriedade clear em CSS
Para resolver esse problema, existe uma propriedade especial
clear, que cancela a flutuação.
O valor left cancela a flutuação à esquerda,
o valor right - à direita, e o valor
both - de ambos os lados. Este valor
é o mais utilizado.
Portanto, a propriedade clear cancela a flutuação.
No nosso caso, isso nos permitirá fazer com que
a imagem flutuante da primeira div
não invada a segunda div.
Nesse caso, o clear deve ser aplicado ao
elemento que não deve ser invadido por elementos
flutuantes, ou seja, no nosso caso, deve ser
aplicado à segunda div.
Vamos fazer isso - vamos dar à segunda div,
além da classe parent, também a classe clearfix
e para esta nova classe definir a propriedade
clear com o valor both - a sobreposição
da imagem desaparecerá:
<div class="parent">
<img src="img.png" alt="">
texto
</div>
<div class="parent clearfix">
texto
</div>
.parent {
border: 1px solid red;
}
.parent img {
float: left;
}
.clearfix {
clear: both;
}
:
O nome clearfix é amplamente aceito,
portanto, use-o daqui para frente.