Die Höhe eines Elements durch seine untergeordneten Elemente bestimmt wird (es sei denn, es explizit festgelegt ist). Zum Beispiel:
Die Höhe von A wird bestimmt durch, wo der untere Rand seines Kindes C ist.
Nun schwebenden Elemente nicht auf der Höhe ihrer Eltern zählen, sind sie aus dem regelmäßigen Fluss genommen:
+------A------+
+--+---------++
| B |
+---------+
+---------+
| C |
+---------+
Das A-Element auf eine minimale Höhe reduziert ist, weil seine zwei Kinder schwebte.
Räumelemente eingeführt, um die richtige Höhe wiederherzustellen:
+------A------+
| +---------+|
| | B ||
| +---------+|
| +---------+|
| | C ||
| +---------+|
|+-----D-----+|
+-------------+
Das Element D ist ein Nullhöhe Element mit dem clear
Attribut gesetzt. Das verursacht, dass es unter die floated Elemente fällt (es löscht sie). Das bewirkt, dass A ein normales untergeordnetes Element hat, um seine Höhe zu berechnen. Das ist der typischste Anwendungsfall zumindest.
Die häufig bessere Lösung für die Einführung von zusätzlichen HTML-Elementen ist die Einstellung von A auf overflow: hidden
. Dies hat den Effekt, dass eine Höhenberechnung erzwungen wird, die denselben Effekt hat, die Höhe auf die gewünschte Größe zu erhöhen. Diese Lösung kann jedoch andere Nebenwirkungen haben oder auch nicht.
Mehr darüber gehen zu diesem http://www.w3.org/TR/CSS2/visuren.html#float-position –