Odpowiedzi:
overflow:auto;
w zawierającym elemencie div sprawia, że wszystko wewnątrz niego (nawet elementy pływające) jest widoczne, a zewnętrzny element div całkowicie otacza je. Zobacz ten przykład:
.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
został dodany). Naprawiono to przez usunięcie overflow: auto;
z klasy, a także height
selektora
Istnieje więcej niż jeden sposób na wyczyszczenie pływaków. Możesz sprawdzić niektóre tutaj:
http://work.arounds.org/issue/3/clearing-floats/
Np. clear:both
Może pracować dla Ciebie
#element:after {
content:"";
clear:both;
display:block;
}
#element { zoom:1; }
overflow: auto;
przycinanie treści (takich jak dekoracje fokusu), które wychodzą poza element, ale tak się nie stanie.
W wielu przypadkach overflow: auto;
to wystarczy, ale ze względu na ukończenie i obsługę wielu przeglądarek spójrz na Clearfix, który wykona zadanie dla wszystkich przeglądarek.
Rozważmy następujący znacznik.
<div class="clearfix">
<div class="content">Content 1</div>
<div class="content">Content 2</div>
</div>
Wraz z następującymi stylami.
.content { float:left; }
.clearfix { ..from link.. }
Bez wyraźnego poprawka rodzic div
nie miałby wzrostu ze względu na pływające dzieci. Clearfix sprawi, że rodzic rozważy pływające dzieci.
overflow: auto;