L'altezza di un elemento è determinata dai suoi elementi figlio (a meno che non sia impostato esplicitamente). Es .:
+------A------+
|+-----------+|
|| B ||
|+-----------+|
|+-----------+|
|| C ||
|+-----------+|
+-------------+
L'altezza di A è determinato da dove il margine inferiore del suo bambino C è.
Ora, gli elementi galleggianti non contano verso l'altezza dei loro genitori, sono portati fuori dal flusso regolare:
+------A------+
+--+---------++
| B |
+---------+
+---------+
| C |
+---------+
La Un elemento viene compressa ad un'altezza minima, perché i suoi due figli sono galleggiava.
elementi di compensazione sono introdotti per ripristinare la corretta altezza:
+------A------+
| +---------+|
| | B ||
| +---------+|
| +---------+|
| | C ||
| +---------+|
|+-----D-----+|
+-------------+
L'elemento D è un elemento zero altezza con l'attributo clear
impostato. Questo fa sì che cada sotto gli elementi flottati (lo cancella). Ciò fa sì che A abbia un elemento figlio regolare per calcolare la sua altezza entro. Questo è il caso d'uso più tipico, almeno.
La soluzione spesso migliore per introdurre elementi HTML aggiuntivi è impostare A a overflow: hidden
. Ciò ha l'effetto di forzare un calcolo dell'altezza, che ha lo stesso effetto di aumentare l'altezza della dimensione desiderata. Questa soluzione può o non può avere altri effetti collaterali però.
Ulteriori informazioni su questo argomento sono disponibili su questo http://www.w3.org/TR/CSS2/visuren.html#float-position –