Heim > Web-Frontend > CSS-Tutorial > Warum schlägt „height: 100 %' bei einem untergeordneten Element fehl, wenn sein übergeordnetes Element „min-height'/„max-height', aber keine explizite Höhe hat?

Warum schlägt „height: 100 %' bei einem untergeordneten Element fehl, wenn sein übergeordnetes Element „min-height'/„max-height', aber keine explizite Höhe hat?

Patricia Arquette
Freigeben: 2024-12-26 20:36:10
Original
266 Leute haben es durchsucht

Why Does `height: 100%` Fail on a Child Element When Its Parent Has `min-height`/`max-height` but No Explicit Height?

Warum wird „Höhe: 100 %“ auf ein untergeordnetes Element nicht angewendet, wenn das übergeordnete Element einen Min-Height-/Max-Height-Wert, aber keinen angegebenen Höhenwert hat?

Berücksichtigen Sie das folgende HTML- und CSS-Setup:

<div class="container">
  <div class="child"></div>
</div>
Nach dem Login kopieren
.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
Nach dem Login kopieren

In diesem In diesem Szenario wird das Containerelement wie erwartet mit einer Höhe von 300 Pixel gerendert, das untergeordnete Element bleibt jedoch trotz der Deklaration height: 100 % ohne Höhe.

Hinzufügen eines kleinen Höhenwerts (z. B. 1 Pixel) zum Das Containerelement führt dazu, dass das untergeordnete Element plötzlich den gesamten Container mit einer Höhe von 300 Pixeln ausfüllt:

.container {
  background-color: red;
  width: 500px;
  min-height: 300px;
  height: 1px;
}

.child {
  background-color: blue;
  width: 500px;
  height: 100%;
}
Nach dem Login kopieren

Dieses Verhalten ist auf die CSS-Spezifikation selbst zurückzuführen. Wenn die Höhe eines Elements nicht explizit definiert ist, schlägt die prozentuale Höhe seines untergeordneten Elements fehl. Gemäß der Spezifikation:

Gibt eine prozentuale Höhe an. Der Prozentsatz wird in Bezug auf die Höhe des enthaltenden Blocks der generierten Box berechnet. Wenn die Höhe des enthaltenden Blocks nicht explizit angegeben ist (d. h. sie hängt von der Inhaltshöhe ab) und dieses Element nicht absolut positioniert ist, wird der Wert zu „auto“ berechnet.

Im Anfangsfall, da der Wenn die Höhe des Containerelements nicht explizit festgelegt wird, wird die Höhe des untergeordneten Elements: 100 % zu „Auto“. Dies bedeutet, dass es nur so viel Platz einnimmt, wie sein Inhalt erfordert, was zu keiner sichtbaren Höhe führt.

Durch das Hinzufügen eines Höhenwerts (sogar so klein wie 1 Pixel) zum Containerelement wird dessen Höhe explizit definiert, was dem untergeordneten Element ermöglicht Elementhöhe: 100 %, um die richtige Höhe zu berechnen und anzuwenden.

Das scheinbar unerwartete Verhalten ist daher auf die Tatsache zurückzuführen, dass die Höhe eines übergeordneten Elements explizit für seine untergeordneten Elemente definiert werden muss um ihre prozentualen Höhen korrekt zu berechnen.

Das obige ist der detaillierte Inhalt vonWarum schlägt „height: 100 %' bei einem untergeordneten Element fehl, wenn sein übergeordnetes Element „min-height'/„max-height', aber keine explizite Höhe hat?. 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