1. Hoher Einsturzgrad Im Dokumentfluss wird die Höhe des übergeordneten Elements standardmäßig durch das untergeordnete Element erweitert, d. h. die Höhe des übergeordneten Elements ist gleich der Höhe des untergeordneten Elements. Wenn für ein untergeordnetes Element jedoch die Floating-Funktion festgelegt ist, befindet sich das untergeordnete Element vollständig außerhalb des Dokumentflusses. Zu diesem Zeitpunkt kann das untergeordnete Element die Höhe des übergeordneten Elements nicht unterstützen, was dazu führt, dass die Höhe des übergeordneten Elements zusammenbricht.
<!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Titel</title> <style type="text/css"> .box1{ Rand: 10px durchgehend rot; } </Stil> </Kopf> <Text> <div Klasse="Box1"> <div Klasse="box2">eine</div> </div> </body> </html> Ergebnis: Die Höhe des Elternelements box1 wird um den Inhalt des Kindelements box2a erweitert. <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Titel</title> <style type="text/css"> .box1{ Rand: 10px durchgehend rot; } .box2{ Breite: 100px; Höhe: 100px; Hintergrundfarbe: grüngelb; } </Stil> </Kopf> <Text> <div Klasse="Box1"> <div Klasse="box2">ein</div> </div> </body> </html> Ergebnis: Die Höhe des übergeordneten Elements wird um die Höhe des untergeordneten Elements (100) gestreckt. Wenn Sie Float für ein untergeordnetes Element festlegen: <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Titel</title> <style type="text/css"> .box1{ Rand: 10px durchgehend rot; } .box2{ Breite: 100px; Höhe: 100px; Hintergrundfarbe: grüngelb; schweben: links; } .Fußzeile{ Höhe: 50px; Hintergrundfarbe: rosa; } </Stil> </Kopf> <Text> <div Klasse="Box1"> <div Klasse="box2"></div> </div> <div Klasse="Fußzeile"></div> </body> </html> Ergebnis: Das untergeordnete Element schwebt und das übergeordnete Element hat keine Höhe. Der Fußbereich wandert nach oben. Legen Sie die Höhe des übergeordneten Elements fest, um ein Zusammenfallen zu vermeiden: .box1{ Rand: 10px durchgehend rot; Höhe: 100px;/* Höhe des übergeordneten Elements festlegen*/ } Ergebnis: Wenn die Höhe des untergeordneten Elements jedoch zu groß ist, treten Überlaufprobleme auf. Sobald die Höhe des übergeordneten Elements festgelegt ist, passt sich die Höhe des übergeordneten Elements nicht automatisch an die Höhe des untergeordneten Elements an. Daher wird diese Lösung nicht empfohlen: .box2{ Breite: 100px; Höhe: 200px; Hintergrundfarbe: grüngelb; schweben: links; } Ergebnis: 2. Lösen Sie das Kollapsproblem Gemäß dem W3C-Standard haben alle Elemente auf der Seite ein implizites Attribut namens Block Formatting Context oder kurz BFC. Diese Eigenschaft kann aktiviert oder deaktiviert werden und ist standardmäßig deaktiviert. So aktivieren Sie den BFC eines Elements: Element auf Float setzen Obwohl diese Methode das übergeordnete Element erweitern kann, geht dadurch die Breite des übergeordneten Elements verloren. Darüber hinaus bewirkt diese Methode auch, dass die unteren Elemente nach oben verschoben werden, was das Problem nicht lösen kann. Setzt das Element auf absolute Positionierung Es gibt auch die oben genannten Probleme Setzen Sie das Element auf Inline-Block Dadurch kann das Problem zwar gelöst werden, es kommt jedoch zu einem Breitenverlust und ist daher nicht zu empfehlen. Setzen Sie den Überlauf des Elements auf einen nicht sichtbaren Wert Empfohlene Methode: Durch das Setzen des Überlaufs des übergeordneten Elements auf „Versteckt“ aktivieren Sie BFC mit den geringsten Nebenwirkungen. <!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <title>Titel</title> <style type="text/css"> .box1{ Rand: 10px durchgehend rot; Überlauf: versteckt; } .box2{ Breite: 100px; Höhe: 100px; Hintergrundfarbe: grüngelb; schweben: links; } .Fußzeile{ Höhe: 50px; Hintergrundfarbe: rosa; } </Stil> </Kopf> <Text> <div Klasse="Box1"> <div Klasse="box2"></div> </div> <div Klasse="Fußzeile"></div> </body> </html> Ergebnis: Hinweis: BFC wird in IE6 jedoch nicht unterstützt. Daher wird hasLayout eingeführt. In IE6 gibt es eine weitere implizite Eigenschaft namens hasLayout, die eine ähnliche Funktion wie BFC hat, sodass der IE6-Browser das Problem lösen kann, indem er hasLayout aktiviert. Es gibt viele Möglichkeiten, es zu aktivieren, aber die Methode mit den geringsten Nebenwirkungen ist: Setzen Sie den Zoom des Elements einfach auf 1. Zoom bedeutet „vergrößern“ und wird gefolgt von einer Zahl. Die Zahl, die Sie eingeben, gibt an, wie oft das Element vergrößert wird. zoom:1 bedeutet, dass das Element nicht vergrößert werden soll, aber hasLayout kann über diesen Stil aktiviert werden. Der Zoom-Stil wird nur im Internet Explorer und nicht in anderen Browsern unterstützt. Zoom: 1;/* kompatibel mit ie6*/ Überlauf: versteckt;/* Kompatibel mit Nicht-IE6*/ Dies ist das Ende dieses Artikels über die Lösung des CSS-Höhenkollapsproblems. Weitere relevante CSS-Höhenkollapsinhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! |
<<: Detaillierte Beschreibung der Funktion von meta name="" content="
>>: Eine kurze Analyse, wie MySQL die Transaktionsisolierung implementiert
Inhaltsverzeichnis 1. Vererbung der Prototypkette...
Das Installationstutorial für MySQL 8.0.11 WinX64...
Der Container wurde bereits erstellt. So erfahren...
Es gibt viele Gründe, warum eine Anwendung langsa...
<Text> <div id="Wurzel"> &l...
Heute möchte ich mit Ihnen teilen, dass der Stand...
In diesem Artikel wird der spezifische Code des h...
In diesem Artikel werden hauptsächlich Tabellen e...
Inhaltsverzeichnis Was ist der Grund für den plöt...
1. Übersicht Zabbix ist eine sehr leistungsstarke...
Vor Kurzem hat Oracle die öffentliche Verfügbarke...
MySQL ist in Community Edition (Community Server)...
Vorwort In der Vergangenheit habe ich die Python-...
Problembeschreibung Als ich kürzlich ein Springbo...
Inhaltsverzeichnis Hintergrund Problemort Weitere...