Heim > Web-Frontend > CSS-Tutorial > Warum verursacht „overflow: versteckt' eine Höhenerweiterung in CSS, wenn schwebende Elemente enthalten sind?

Warum verursacht „overflow: versteckt' eine Höhenerweiterung in CSS, wenn schwebende Elemente enthalten sind?

Patricia Arquette
Freigeben: 2024-12-17 05:52:24
Original
899 Leute haben es durchsucht

Why Does `overflow: hidden` Cause Height Expansion in CSS When Containing Floated Elements?

Overflow: Hidden's höhenexpandierender Nebeneffekt

In der Welt des CSS-Layouts spielt die Overflow: Hidden-Eigenschaft eine entscheidende Rolle bei der Steuerung das Verhalten von Inhalten, die den zugewiesenen Platz überschreiten. Ein unerwarteter Nebeneffekt der Verwendung dieser Eigenschaft besteht jedoch darin, dass sie dazu führen kann, dass sich die Höhe des äußeren Elements vergrößert, um schwebende Elemente aufzunehmen.

Um dieses Phänomen zu verstehen, betrachten wir das folgende Beispiel:

<div class="outer">
    <div class="inner-left"></div>
    <div class="inner-right"></div>
</div>
Nach dem Login kopieren
.outer {
    width: 100px;
    border: solid 5px #000;
}
.inner-left {
    float: left;
    height: 200px;
    width: 50px;
    background: #f00;
}
.inner-right {
    float: right;
    height: 200px;
    width: 50px;
    background: #0f0;
}
Nach dem Login kopieren

Wenn die Eigenschaft „overflow:hidden“ auf das .outer-Element angewendet wird, beobachten wir, dass es sich in der Höhe ausdehnt, um die beiden schwebenden Elemente (.inner-left und .inner-right) zu umfassen. Warum passiert das?

Die Erklärung liegt im Konzept der Blockformatierungskontexte. Ein Blockfeld mit einem Überlauf, der nicht sichtbar ist (Standardeinstellung), erstellt einen neuen Blockformatierungskontext. Boxen, die neue Blockformatierungskontexte erstellen, werden so definiert, dass sie gestreckt werden, um ihre Gleitkommazahlen nach Höhe zu enthalten, wenn sie selbst keine angegebene Höhe haben. Standardmäßig ist „Auto“ eingestellt.

Im obigen Beispiel hat das .outer-Element zunächst kein explizites Element Höhe, was zu einem automatischen Standardwert führt. Da dadurch ein neuer Blockformatierungskontext erstellt wird, dehnt sich die Box aus, um die Unterkanten der darin schwebenden Elemente aufzunehmen, auch wenn der Inhalt im .outer-Element kürzer ist.

Dieser Nebeneffekt von overflow: versteckt ist nicht dasselbe wie Float-Clearing. Die Freigabe erfolgt nur, wenn die Eigenschaft „clear“ explizit verwendet wird und vorhergehende Floats gelöscht werden müssen. Darüber hinaus führt die Verwendung eines Nullhöhenelements oder Pseudoelements am Ende des Containerelements zur Erzwingung des Abstands (Klarfix) nicht dazu, dass sich das äußere Element in der Höhe ausdehnt.

Das Verständnis dieses Verhaltens ist für eine effektive Verwaltung von entscheidender Bedeutung Layouts und verhindert unerwartete Höhenerweiterungen in Ihrem CSS-Code. Indem Sie die Auswirkungen von Blockformatierungskontexten und Float-Freigaben berücksichtigen, können Sie Ihre Designs optimieren, um die gewünschten visuellen Ergebnisse zu erzielen.

Das obige ist der detaillierte Inhalt vonWarum verursacht „overflow: versteckt' eine Höhenerweiterung in CSS, wenn schwebende Elemente enthalten sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage