Heim >Web-Frontend >CSS-Tutorial >Warum erstellen nicht „sichtbare' Überlaufwerte neue Blockformatierungskontexte in CSS2.1?
Warum CSS2.1 andere Überlaufwerte als „sichtbar“ definiert, um einen neuen Blockformatierungskontext einzurichten
Die CSS2.1-Spezifikation schreibt dies vor Andere Überlaufwerte als „sichtbar“ erstellen einen neuen Blockformatierungskontext (BFC). Diese Entscheidung mag kontraintuitiv erscheinen, da ein Überlauf normalerweise zum Ausblenden von Inhalten verwendet wird, ohne das Layout zu beeinträchtigen. Es gibt jedoch zwingende Gründe für diese Wahl.
Scrollbarer Inhalt und Leistung
Eine Hauptmotivation für die Definition nicht sichtbarer Überlaufwerte als BFCs besteht darin, die Leistung beim Scrollen zu verbessern . Wenn sich ein schwebendes Element mit scrollbaren Inhalten außerhalb seines übergeordneten Containers überschneidet, müssen Browser den Inhalt bei jedem Scrollen neu um das schwebende Element herum wickeln. Dieses ständige Umbrechen würde sich erheblich auf die Scrollgeschwindigkeit auswirken, wenn Browser die ursprüngliche CSS2-Spezifikation implementieren müssten.
Konsistenz mit anderen Überlaufwerten
Ein weiterer Faktor bei dieser Entscheidung ist die Konsistenz. Auch wenn overflow: „hidden“ den Anschein erweckt, als würde er den Inhalt lediglich in seinem Container ausschneiden, kann er dennoch programmgesteuert gescrollt werden. Daher führt die Angabe eines nicht sichtbaren Überlaufwerts konsistent zu einem neuen BFC, unabhängig davon, ob der Inhalt tatsächlich scrollbar ist.
Vereinheitlichung des Verhaltens mit ersetzten Elementen
CSS2. 1 führte außerdem Änderungen im Verhalten von height: „auto“ für Blockformatierungskontextwurzeln (BFCRs) ein. BFCRs mit height: „auto“ dehnen sich jetzt vertikal aus, um Floats aufzunehmen. Dies steht im Einklang mit dem Verhalten ersetzter Elemente (z. B. Bilder), die von Natur aus BFCs erstellen und sich an ihren Inhalt anpassen.
Vorteile von nicht sichtbarem Überlauf
Von Durch die Definition nicht sichtbarer Überlaufwerte als BFCs gewährleistet CSS2.1:
Das obige ist der detaillierte Inhalt vonWarum erstellen nicht „sichtbare' Überlaufwerte neue Blockformatierungskontexte in CSS2.1?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!