Inhaltsverzeichnis
CSS Grid Layout
Diese Dokumentation behandelt die Grundlagen, Eigenschaften und Ausrichtungsmethoden des CSS Grid Layouts basierend auf den Schulungsunterlagen[cite: 14].
1. Funktionsweise & Terminologie
Das CSS Grid ist ein zweidimensionales Layout-System[cite: 14]. Die Funktionsweise gliedert sich in drei Schritte[cite: 14]:
1. **Container festlegen:** Ein Element wird durch ''display: grid'' zum Grid Container[cite: 14]. 2. **Spuren definieren:** Zeilen und Spalten werden explizit oder implizit eingerichtet[cite: 14]. 3. **Elemente platzieren:** Kinder-Elemente (Grid Items) werden in Rasterbereiche eingeordnet[cite: 14].
Grundbegriffe
- Grid Container & Item: Das Elternelement und seine direkten Kindelemente[cite: 14].
- Grid Lines: Die vertikalen und horizontalen Trennlinien des Rasters[cite: 14].
- Grid Cell: Die kleinste Einheit im Raster (eine einzelne Zelle zwischen vier Linien)[cite: 14].
- Grid Area: Ein zusammenhängender Bereich aus einer oder mehreren Zellen[cite: 14].
- Grid Track: Eine einzelne Spalte oder Zeile im Raster[cite: 14].
- Achsen: Inline Axis (horizontal) und Block Axis (vertikal)[cite: 14].
2. Container definieren & Spuren festlegen
#layout { display: grid; grid-template-rows: 100px 400px 100px; grid-template-columns: 200px 1fr 200px; }
Spurgrößenwerte
Für die Längenangaben von Spalten und Zeilen stehen verschiedene Einheiten zur Verfügung[cite: 14]:
- Feste Längen & Prozente: z. B.
px,em,%[cite: 14]. - Bruch-Einheiten (Fractional Units -
fr): Verteilt den verfügbaren freien Platz flexibel[cite: 14]. minmax(min, max): Schränkt die Größe auf einen Bereich ein (z. B.minmax(15em, 45em))[cite: 14].- Inhaltsbasierte Größen:
min-content,max-contentundauto[cite: 14]. repeat(): Wiederholt Musterspuren (z. B.repeat(5, 20px 1fr))[cite: 14].auto-fillvs.auto-fit: Automatische Berechnung der Wiederholungen.auto-fillbehält leere Spuren bei,auto-fitkollabiert leere Spuren[cite: 14].
Liniennummern & Liniennamen
Browser nummerieren Rasterlinien automatisch von 1 bis zum Ende (sowie negativ von -1 rückwärts)[cite: 14]. Benannte Linien werden in eckigen Klammern angegeben[cite: 14]:
#layout { display: grid; grid-template-rows: [header-start] 100px [header-end content-start] 400px [content-end]; grid-template-columns: [ads] 200px [main] 1fr [links] 200px; }
3. Rasterbereiche (Grid Areas)
Mit grid-template-areas lässt sich ein visuelles Layout direkt im CSS definieren[cite: 14]:
#layout { display: grid; grid-template-areas: "header header header" "ads main links" "footer footer footer"; } /* Zuweisung beim Grid Item */ #header { grid-area: header; } #main { grid-area: main; }
<note tip>
Wenn Bereiche benannt werden, generiert der Browser implizit Liniennamen mit den Suffixen -start und -end (und umgekehrt)[cite: 14].
</note>
4. Kurzschreibweise (grid)
Die Eigenschaft grid führt Zeilen- und Spalteninformationen zusammen (Zeilen vor dem Schrägstrich, Spalten danach)[cite: 14]:
#layout { display: grid; grid: 100px 400px 100px / 200px 1fr 200px; }
5. Elemente platzieren
Grid Items können anhand von Liniennummern, Liniennamen oder Spannen (span) positioniert werden[cite: 14]:
Einzelne Eigenschaften
grid-row-start/grid-row-end[cite: 14]grid-column-start/grid-column-end[cite: 14]
Kurzschreibweisen
#one { /* Start / End */ grid-row: 1 / 2; grid-column: 1 / span 3; }
6. Implizites Grid & Automatischer Fluss
Wenn Elemente nicht explizit platziert werden, fließen sie automatisch in das Raster ein[cite: 14]:
- grid-auto-rows / grid-auto-columns: Legt die Größe automatisch generierter Spuren fest[cite: 14].
- grid-auto-flow: Steuert die Fließrichtung (
rowodercolumn)[cite: 14]. Das Schlüsselwortdensefüllt Lücken im Raster auf, verändert jedoch evtl. die visuelle Reihenfolge[cite: 14].
7. Abstände & Ausrichtung
Abstände (Gaps)
Abstände werden zwischen den Spuren eingefügt, ohne zusätzliche Spuren zu erzeugen[cite: 14]:
grid-row-gap/row-gap[cite: 14]grid-column-gap/column-gap[cite: 14]grid-gap: 20px 50px;(Zeile Spalte)[cite: 14]
Ausrichtung im Container & Element
| Eigenschaft | Ebene | Achse / Ausrichtung |
|---|---|---|
| justify-items | Container | Horizontale Ausrichtung aller Elemente in ihren Zellen[cite: 14] |
| align-items | Container | Vertikale Ausrichtung aller Elemente in ihren Zellen[cite: 14] |
| justify-self | Item | Horizontale Ausrichtung eines einzelnen Elements[cite: 14] |
| align-self | Item | Vertikale Ausrichtung eines einzelnen Elements[cite: 14] |
| justify-content | Container | Horizontale Verteilung der gesamten Spuren im Container[cite: 14] |
| align-content | Container | Vertikale Verteilung der gesamten Spuren im Container[cite: 14] |
Mögliche Werte: start, end, center, stretch, space-around, space-between, space-evenly[cite: 14].
8. Übersicht aller Grid-Eigenschaften
| Container-Eigenschaften | Item-Eigenschaften |
|---|---|
display: grid \| inline-grid[cite: 14] | grid-column (-start / -end)[cite: 14] |
grid / grid-template[cite: 14] | grid-row (-start / -end)[cite: 14] |
grid-template-rows / -columns / -areas[cite: 14] | grid-area[cite: 14] |
grid-auto-rows / -columns / -flow[cite: 14] | justify-self / align-self[cite: 14] |
grid-gap (grid-row-gap, grid-column-gap)[cite: 14] | order *(nicht Teil des Grid-Moduls)*[cite: 14] |
justify-items / align-items[cite: 14] | z-index *(nicht Teil des Grid-Moduls)*[cite: 14] |
justify-content / align-content[cite: 14] |