Heim > Web-Frontend > CSS-Tutorial > Warum verdoppelt die Höhe meines CSS-Rasterelements nicht die Höhe des übergeordneten Containers?

Warum verdoppelt die Höhe meines CSS-Rasterelements nicht die Höhe des übergeordneten Containers?

Patricia Arquette
Freigeben: 2024-11-29 15:58:12
Original
460 Leute haben es durchsucht

Why Doesn't My CSS Grid Item Height Double the Parent Container's Height?

CSS-Raster: Verwirrung bei der Berechnung der Elementhöhe

Sie stoßen auf ein Problem mit der Höhe eines CSS-Rasterelements, insbesondere des .gridItem , wird nicht wie erwartet berechnet. In diesem Raster-Setup:

.gridContainer {
  height: 100px;
  grid-template-rows: 1fr;
}

.gridItem {
  height: 200%;
}
Nach dem Login kopieren

Die Absicht ist, dass .gridItem doppelt so hoch ist wie sein übergeordnetes Element, .gridContainer. Das Ergebnis scheint jedoch stattdessen die Höhe des untergeordneten Elements zu berücksichtigen.

Eltern-Kind-Beziehung im CSS-Raster verstehen

Bei der Arbeit mit CSS-Rastern ist es wichtig, die zu verstehen Eltern-Kind-Beziehung. In diesem Fall ist das übergeordnete Element für das .gridItem nicht direkt der .gridContainer, sondern die Rasterspur, die es enthält.

Wenn Sie „grid-template-rows: 1fr;“ angeben, erstellen Sie eine Spur mit einem flexiblen Höhe, die 1 Bruchteil des verfügbaren Platzes des übergeordneten Elements einnimmt. Da die übergeordnete Spur eine feste Höhe von 100 Pixel hat, beträgt die Höhe der Spur 100 Pixel.

Obwohl .gridItem eine Höhe von 200 % hat, bezieht es sich daher auf die Höhe der übergeordneten Spur, die 100 Pixel beträgt. Dies erklärt, warum die Höhe von .gridItem effektiv doppelt so hoch ist wie die Höhe des Tracks und nicht des übergeordneten Containers.

Fix: Festlegen expliziter Höhen sowohl für Container als auch für Track

Um dieses Problem zu beheben, müssen Sie sowohl für den .gridContainer als auch für die Rasterschiene eine feste Höhe angeben. Dadurch wird eine klare Eltern-Kind-Beziehung hergestellt und ermöglicht, dass die prozentuale Höhe von .gridItem korrekt funktioniert.

.gridContainer {
  height: 100px;
  grid-template-rows: 100px;
}

.gridItem {
  height: 200%;
}
Nach dem Login kopieren

Mit dieser Anpassung sollte die Höhe von .gridItem nun erwartungsgemäß doppelt so hoch sein wie die Höhe von .gridContainer .

Das obige ist der detaillierte Inhalt vonWarum verdoppelt die Höhe meines CSS-Rasterelements nicht die Höhe des übergeordneten Containers?. 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