Risposte:
overflow:auto;
sul div contenitore rende visibile tutto al suo interno (anche gli oggetti flottati) e il div esterno li avvolge completamente. Guarda questo esempio:
.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
stato aggiunto). Risolto il problema rimuovendo overflow: auto;
dalla classe e dal height
selettore
C'è più di un modo per cancellare i float. Puoi verificarne alcuni qui:
http://work.arounds.org/issue/3/clearing-floats/
Ad esempio, clear:both
potrebbe funzionare per te
#element:after {
content:"";
clear:both;
display:block;
}
#element { zoom:1; }
overflow: auto;
ritaglierà il contenuto (come le decorazioni del focus) che trabocca all'esterno dell'elemento, ma non lo farà.
In molti casi, overflow: auto;
sarà sufficiente, ma per motivi di completamento e supporto cross browser, dai un'occhiata a Clearfix che farà il lavoro per tutti i browser.
Consideriamo il seguente markup ..
<div class="clearfix">
<div class="content">Content 1</div>
<div class="content">Content 2</div>
</div>
Insieme ai seguenti stili ..
.content { float:left; }
.clearfix { ..from link.. }
Senza il clearfix, il genitore div
non avrebbe un'altezza a causa dei suoi figli fluttuanti. Clearfix farà in modo che il genitore consideri i figli fluttuanti.
overflow: auto;