Heim > Web-Frontend > CSS-Tutorial > Warum führt die prozentuale Höhe in CSS manchmal zu unerwartetem Verhalten?

Warum führt die prozentuale Höhe in CSS manchmal zu unerwartetem Verhalten?

DDD
Freigeben: 2024-12-31 04:16:09
Original
308 Leute haben es durchsucht

Why Does Percentage Height in CSS Sometimes Result in Unexpected Behavior?

CSS: Die Besonderheiten der prozentualen Höhe verstehen

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.

Das Geheimnis der fehlenden Höhe

Beachten Sie das folgende HTML und CSS:

<div>
Nach dem Login kopieren
Nach dem Login kopieren
#working {
  width: 80%;
  height: 140px;
  background: orange;
}
#not-working {
  width: 80%;
  height: 30%;
  background: green;
}
Nach dem Login kopieren

Während die Breite von #working erwartungsgemäß 80 % des Ansichtsfensters entspricht, ist die Höhe von #not-working wird rätselhafterweise zu 0.

Abhängigkeit durchbrechen

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>
Nach dem Login kopieren
Nach dem Login kopieren

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.

Die Lösung

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage