overflow:auto;
na div que contém faz com que tudo dentro dela (até itens flutuantes) fique visível e a div externa envolva-os completamente. Veja este exemplo:
.wrap {
padding: 1em;
overflow: auto;
background: silver;
}
.float {
float: left;
width: 40%;
background: white;
margin: 0 1%;
}
<div class="wrap">
<div class="float">Cras mattis iudicium purus sit amet fermentum. At nos hinc posthac, sitientis piros Afros. Qui ipsorum lingua Celtae, nostra Galli appellantur. Petierunt uti sibi concilium totius Galliae in diem certam indicere. Ambitioni dedisse scripsisse iudicaretur.</div>
<div class="float">Mercedem aut nummos unde unde extricat, amaras. A communi observantia non est recedendum. Quisque ut dolor gravida, placerat libero vel, euismod. Paullum deliquit, ponderibus modulisque suis ratio utitur.</div>
</div>
overflow
foi adicionado). Fixa-lo removendo ooverflow: auto;
da classe, bem como oheight
seletorHá mais de uma maneira de limpar carros alegóricos. Você pode conferir alguns aqui:
http://work.arounds.org/issue/3/clearing-floats/
Por exemplo,
clear:both
pode funcionar para vocêfonte
overflow: auto;
irá recortar o conteúdo (como decorações de foco) que transborda para fora do elemento, mas isso não ocorre .Em muitos casos,
overflow: auto;
será suficiente, mas para fins de conclusão e suporte entre navegadores, dê uma olhada no Clearfix, que fará o trabalho para todos os navegadores.Vamos considerar a seguinte marcação.
Junto com os seguintes estilos ..
.content { float:left; }
.clearfix { ..from link.. }
Sem o clearfix, o pai
div
não teria altura devido a filhos flutuantes. O clearfix fará com que o pai considere os filhos flutuantes.fonte
overflow: auto;
Eu achei que uma ótima maneira de fazer isso é definir
display: table
o div.fonte