Zeilen gleicher Höhe im CSS-Rasterlayout: Eine detaillierte Erklärung
Im Gegensatz zu Flexbox, wo Zeilenhöhen durch die erforderliche Mindesthöhe bestimmt werden Für seine Elemente ermöglicht CSS Grid Layout Entwicklern, Zeilen gleicher Höhe über ein gesamtes Raster hinweg zu erreichen.
Rasterlayout Lösung
Der Schlüssel zum Erreichen gleicher Höhen liegt darin, die Eigenschaft „grid-auto-rows“ des Rastercontainers auf 1fr zu setzen. Fr-Einheiten sind so konzipiert, dass sie freien Platz in einem Container verteilen, ähnlich der Flex-Grow-Eigenschaft in Flexbox.
Durch die Einstellung von „grid-auto-rows“: 1fr haben alle Zeilen innerhalb des Rasters die gleiche Höhe. Dies mag kontraintuitiv erscheinen, da fr den Platz dynamisch zuweisen sollte.
Die Fr-Einheit verstehen
Die CSS-Rasterspezifikation enthüllt jedoch eine entscheidende Nuance: beim Umgang mit dynamischen Rasterdimensionen , „Rasterspuren“ (in diesem Fall Zeilen) werden in der Größe angepasst, um sie an ihren Inhalt anzupassen. Die Höhe jeder Zeile passt sich dann dem höchsten (maximalen Inhalt) Rasterelement an.
Die maximale Höhe dieser Zeilen entspricht der Länge von 1 fr, die anschließend mit dem Flexfaktor jeder Rasterschiene multipliziert wird, um ihren endgültigen Wert zu bestimmen Größe. Dieser Mechanismus gewährleistet gleiche Höhen über alle Zeilen hinweg.
Warum Flexbox zu kurz kommt
Flexbox kann im Gegensatz zu CSS Grid keine gleichen Zeilenhöhen über mehrere Zeilen hinweg ermöglichen. Flex-Elemente können gemäß der Flexbox-Spezifikation nur innerhalb derselben Zeile gleiche Höhen erreichen:
"In einem mehrzeiligen Flex-Container ist die Quergröße jeder Zeile die Mindestgröße, die erforderlich ist, um die Flex-Elemente darin aufzunehmen Linie." Diese Bestimmung verhindert, dass Flexbox Zeilen über ihre Mindesthöhe hinaus erweitert.
Das obige ist der detaillierte Inhalt vonWie kann ein CSS-Raster im Gegensatz zu Flexbox Zeilen mit gleicher Höhe erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!