Respostas:
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 o overflow: auto;
da classe, bem como o height
seletor
Há 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ê
#element:after {
content:"";
clear:both;
display:block;
}
#element { zoom:1; }
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.
<div class="clearfix">
<div class="content">Content 1</div>
<div class="content">Content 2</div>
</div>
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.
overflow: auto;