In CSS kann die Höheneigenschaft ein verwirrendes Rätsel sein, wenn es um die Verwendung von Prozentwerten geht. Im Gegensatz zu seinem Gegenstück, der Breite, die sich mühelos an die Größe eines übergeordneten Elements skaliert, führen prozentuale Höhenwerte oft zu unerwartetem Verhalten.
Beachten Sie das folgende HTML und CSS:
<div>
#working { width: 80%; height: 140px; background: orange; } #not-working { width: 80%; height: 30%; background: green; }
Während die Breite von #working erwartungsgemäß 80 % des Ansichtsfensters entspricht, ist die Höhe von #not-working wird rätselhafterweise zu 0.
Der Kern dieses Problems liegt in der Standardhöhe von Blockelementen wie div. Standardmäßig richtet sich die Höhe eines Blockelements nach der Größe seines Inhalts. Dadurch entsteht eine Rückkopplungsschleife:
<div>
Hier wird #inner erweitert, um in den darin enthaltenen Absatz zu passen, während #outer wächst, um #inner aufzunehmen.
Prozentuale Höhenwerte fügen dem eine weitere Ebene hinzu Beziehung. Bei der Angabe einer prozentualen Höhe, beispielsweise 30 %, bezieht sich diese auf die Höhe des übergeordneten Elements. Die Höhe des übergeordneten Elements wird jedoch von der Höhe seiner untergeordneten Elemente beeinflusst, was zu einer zirkulären Abhängigkeit führt.
Um dieses Dilemma zu lösen, muss die Rückkopplungsschleife durchbrochen werden. Dies kann erreicht werden, indem die Höhe des übergeordneten Elements explizit festgelegt wird, wodurch dessen Abhängigkeit von seinen untergeordneten Elementen effektiv beseitigt wird. Im obigen Beispiel wird beispielsweise #outer { height: 500px; } würde eine genau definierte Berechnung sowohl für #outer als auch für #not-working liefern.
Zusammenfassend lässt sich sagen, dass die prozentualen Breitenwerte aufgrund der unabhängigen Natur der Breite für Blockelemente nahtlos funktionieren, die prozentualen Höhenberechnungen jedoch von Natur aus gebunden sind zum Inhalt und erfordern eine klare Höhendefinition für das übergeordnete Element.
Das obige ist der detaillierte Inhalt vonWarum führt die prozentuale Höhe in CSS manchmal zu unerwartetem Verhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!