CSS-Float-Verhalten: Grundlegendes zur Beibehaltung der Div-Breite
Beim Anwenden der float:left-Eigenschaft auf ein HTML-Element wird erwartet, dass die folgenden Elemente dies tun nach links verschoben werden, anstatt in eine neue Zeile umzubrechen. Unter bestimmten Umständen kann es jedoch so aussehen, als ob die Div-Breite davon unberührt bleibt.
Im gegebenen Beispiel ist der Inhalt des zweiten Div (mit class="gelb") korrekt ausgerichtet, das Div selbst jedoch immer noch erstreckt sich über die gesamte Breite des Containers. Dieses Verhalten ergibt sich aus der grundlegenden Natur der Float-Positionierung.
Wenn ein Element schwebend ist, wird es aus dem normalen Fluss des Dokuments entfernt. Der vom schwebenden Element eingenommene Platz ist jedoch immer noch für das nachfolgende Element „reserviert“, das diesen Platz eingenommen hätte.
Diese Platzreservierung ist in der CSS-Spezifikation dokumentiert, die besagt, dass nicht positionierte Block- Ebenenelemente (z. B. Divs) behandeln Floats im Hinblick auf das vertikale Layout so, als ob sie nicht vorhanden wären. Allerdings werden Zeilenfelder (die rechteckigen Bereiche, die Text enthalten) gekürzt, um das Randfeld des Floats unterzubringen.
Dadurch fließt der Inhalt des nachfolgenden Elements an der Seite des Floats nach unten, die Breite des Floats jedoch Der Container (bestimmt durch das folgende nicht schwebende Element) bleibt reserviert.
Um dieses Problem zu beheben, besteht eine Lösung darin, eine Überlaufeigenschaft (z. B. overflow:hidden) auf das nachfolgende Element anzuwenden. Dadurch erstellen Sie einen neuen Blockformatierungskontext, der verhindert, dass sich das Element mit dem Randfeld des schwebenden Elements überschneidet. Dadurch wird das nachfolgende Element gezwungen, auf eine Größe zu schrumpfen, die nicht mit dem Float überlappt.
Das obige ist der detaillierte Inhalt vonWarum scheint ein schwebendes Element keinen Einfluss auf die Div-Breite zu haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!