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
Heute verwenden wir Uniapp, um Echarts zur Anzeig...
Rechtsklickmenü deaktivieren <body oncontextme...
Ich habe node.js zum Erstellen des Servers gewähl...
Inhaltsverzeichnis Objekt.prototype.valueOf() Obj...
Szenariosimulation: Das Betriebs- und Wartungsper...
Werfen wir einen Blick auf die Zabbix-Überwachung...
1. Was ist Phantomlesen? Wenn bei einer Transakti...
<br />Ich habe die in meiner Arbeit verwende...
1. Einleitung Vagrant ist ein Tool zum Erstellen ...
Als Front-End-Ingenieure müssen wir mit dem IE ve...
1. Docker Pull zieht das Image Wenn Sie zum Abruf...
1. Melden Sie sich bei der MySQL-Datenbank an mys...
0x00 Einführung WordPress ist das beliebteste CMS...
<br />Die Farbe einer Webseite ist entscheid...
Hinweis: Sie können keine bereichsbezogenen Anima...