Appearance
Anhang: Grid Layout Kernwissen
📚 Inhaltsverzeichnis
- Kernbegrife
- Container-Eigenschaften
- Element-Eigenschaften
- Häufige Fehler
- Best Practices
- Browser-Kompatibilität
- Nützliche Tools
- Cheat Sheet
1. Kernbegrife
📖 Grid-Container (Grid Container)
Das Element, auf dem display: grid angewendet wird.
css
.container {
display: grid; /* Macht dieses Element zum Grid-Container */
}📖 Grid-Elemente (Grid Items)
Die direkten Kinder des Grid-Containers.
html
<div class="container"> <!-- Grid-Container -->
<div class="item">1</div> <!-- Grid-Element -->
<div class="item">2</div> <!-- Grid-Element -->
</div>📖 Grid-Linien (Grid Lines)
Die horizontalen und vertikalen Linien, die das Grid-Raster bilden.
Grid-Linien (vertikal):
| | |
1 2 3
┌─────────┬─────────┐
│ │ │
└─────────┴─────────┘📖 Grid-Tracks
Die Räume zwischen zwei benachbarten Grid-Linien.
css
.container {
grid-template-columns: 1fr 1fr 1fr; /* 3 Spalten-Tracks */
grid-template-rows: 100px 200px; /* 2 Zeilen-Tracks */
}📖 Grid-Zellen (Grid Cells)
Die kleinste Einheit im Grid-Layout (Kreuzung aus Zeile und Spalte).
📖 Grid-Bereiche (Grid Areas)
Rechteckige Bereiche, die aus mehreren Grid-Zellen bestehen.
css
.container {
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}2. Container-Eigenschaften
📊 Alle Container-Eigenschaften
| Eigenschaft | Beschreibung | Standardwert |
|---|---|---|
display | Aktiviert Grid Layout (grid oder inline-grid) | inline |
grid-template-columns | Definiert Spalten | none |
grid-template-rows | Definiert Zeilen | none |
grid-template-areas | Definiert Bereiche | none |
gap | Abstand zwischen Elementen | 0 |
row-gap | Zeilenabstand | 0 |
column-gap | Spaltenabstand | 0 |
justify-items | Horizontale Ausrichtung (Zellen) | stretch |
align-items | Vertikale Ausrichtung (Zellen) | stretch |
justify-content | Horizontale Ausrichtung (Grid) | start |
align-content | Vertikale Ausrichtung (Grid) | start |
grid-auto-columns | Implizite Spalten | auto |
grid-auto-rows | Implizite Zeilen | auto |
grid-auto-flow | Platzierungsalogrithmus | row |
📊 grid-template-columns / grid-template-rows
Syntax:
css
.container {
/* Feste Breite */
grid-template-columns: 200px 200px 200px;
/* Relative Breite */
grid-template-columns: 1fr 1fr 1fr; /* 3 gleich breite Spalten */
/* Auto */
grid-template-columns: 200px auto 200px;
/* Wiederholung */
grid-template-columns: repeat(3, 1fr);
/* Bereich */
grid-template-columns: minmax(100px, 1fr) 2fr;
}📊 gap
Syntax:
css
.container {
gap: 20px; /* Gleicher Abstand */
gap: 30px 20px; /* Zeilen | Spalten */
row-gap: 30px; /* Nur Zeilen */
column-gap: 20px; /* Nur Spalten */
}📊 Ausrichtung
Syntax:
css
.container {
/* Ausrichtung innerhalb von Zellen */
justify-items: stretch | start | end | center;
align-items: stretch | start | end | center;
/* Ausrichtung des Grids im Container */
justify-content: start | end | center | stretch | space-around | space-between | space-evenly;
align-content: start | end | center | stretch | space-around | space-between | space-evenly;
/* Kurzschreibweise */
place-items: center; /* align-items + justify-items */
place-content: center; /* align-content + justify-content */
}3. Element-Eigenschaften
📊 Alle Element-Eigenschaften
| Eigenschaft | Beschreibung | Standardwert |
|---|---|---|
grid-column | Spalten-Position | auto |
grid-row | Zeilen-Position | auto |
grid-area | Bereichszuweisung | auto |
justify-self | Horizontale Ausrichtung (einzeln) | auto |
align-self | Vertikale Ausrichtung (einzeln) | auto |
order | Reihenfolge | 0 |
z-index | Überlappung | auto |
📊 grid-column / grid-row
Syntax:
css
.item {
/* Start / Ende */
grid-column: 1 / 3;
/* Span (überspannen) */
grid-column: 1 / span 2;
/* Negativ (von hinten zählen) */
grid-column: 1 / -1;
/* Kurz */
grid-column: span 2; /* Nimmt 2 Spalten ein */
}📊 grid-area
Syntax:
css
/* Bereichszuweisung */
.item {
grid-area: header;
}
/* Platzierung (Kurzschreibweise) */
.item {
grid-area: 1 / 1 / 3 / 3; /* row-start / col-start / row-end / col-end */
}📊 Ausrichtung (einzeln)
Syntax:
css
.item {
justify-self: stretch | start | end | center; /* Horizontal */
align-self: stretch | start | end | center; /* Vertikal */
}📊 order
Syntax:
css
.item1 { order: 1; } /* Erscheint als 1. */
.item2 { order: 0; } /* Standard (0) */
.item3 { order: -1; } /* Erscheint als 1. (negativ) */4. Häufige Fehler
❌ Fehler 1: display: grid falsch geschrieben
Falsch:
css
.container {
display: Grid; /* Großschreibung! */
display: GRID; /* Falsch! */
}Richtig:
css
.container {
display: grid; /* Kleinbuchstaben */
}❌ Fehler 2: Keine Spalten/Zeilen definiert
Falsch:
css
.container {
display: grid;
/* Nichts weiter definiert! */
}Richtig:
css
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr; /* Spalten definieren! */
}❌ Fehler 3: fr Einheit missverstanden
Falsche Annahme:
css
.container {
grid-template-columns: 1fr 1fr 1fr; /* Denkt: 33.33% */
}Tatsächliches Verhalten:
frverteilt verfügbaren Platz, nicht die Gesamtbreite.- Wenn ein Element breiteren Inhalt hat, wächst die Spalte.
Lösung:
css
.container {
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}❌ Fehler 4: Grid-Linien falsch gezählt
Falsch:
css
.item {
grid-column: 0 / 3; /* Linie 0 existiert nicht! */
}Richtig:
css
.item {
grid-column: 1 / 3; /* Linie 1 bis 3 */
}Wichtig: Grid-Linien beginnen bei 1, nicht bei 0!
❌ Fehler 5: auto-fill und auto-fit verwechselt
Falsch (wenn Sie Elemente gestreckt wollen):
css
.container {
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
/* Bei wenig Elementen: Leere Spalten bleiben! */
}Richtig:
css
.container {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
/* Bei wenig Elementen: Elemente dehnen sich! */
}5. Best Practices
✅ 1. Verwenden Sie fr Einheit für flexible Layouts
css
.container {
grid-template-columns: 1fr 1fr 1fr; /* 3 gleich breite Spalten */
}✅ 2. Verwenden Sie minmax() für responsives Design
css
.container {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
/* Automatisches responsives Grid! */
}✅ 3. Verwenden Sie gap statt margin
css
.container {
display: grid;
gap: 20px; /* Besser als margin! */
}✅ 4. Verwenden Sie grid-template-areas für komplexe Layouts
css
.container {
grid-template-columns: 250px 1fr;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }✅ 5. Kombinieren Sie Grid und Flexbox
css
/* Grid für Gesamtlayout */
.page {
display: grid;
grid-template-columns: 250px 1fr;
}
/* Flexbox für Komponenten */
.navigation {
display: flex;
justify-content: space-between;
}✅ 6. Mobile-First Ansatz
css
/* Mobile zuerst */
.container {
grid-template-columns: 1fr;
}
/* Dann Tablet/Desktop */
@media (min-width: 768px) {
.container {
grid-template-columns: 1fr 1fr;
}
}
@media (min-width: 1024px) {
.container {
grid-template-columns: 1fr 1fr 1fr;
}
}6. Browser-Kompatibilität
🌐 Unterstützungsstatus (Stand 2026)
| Browser | Version | Status |
|---|---|---|
| Chrome | 66+ | ✅ Vollständig unterstützt |
| Firefox | 61+ | ✅ Vollständig unterstützt (bester Grid-Inspektor) |
| Safari | 12+ | ✅ Vollständig unterstützt |
| Edge | 79+ | ✅ Vollständig unterstützt |
| IE 11 | - | ❌ Nicht unterstützt (nutzen Sie Fallbacks) |
🌐 Polyfills für alte Browser
Empfehlung: Verwenden Sie keine Polyfills für Grid. Bauen Sie lieber ein einfacheres Layout für alte Browser (Graceful Degradation).
css
/* Fallback für alte Browser */
.container {
display: block; /* Oder flex */
}
/* Moderne Browser */
@supports (display: grid) {
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
}
}7. Nützliche Tools
🔧 Browser DevTools
Chrome/Edge:
- ✅ F12 drücken
- ✅ Element auswählen
- ✅ Auf Grid-Symbol neben
display: gridklicken - ✅ Grid-Linien werden im Browser angezeigt
Firefox (bester Grid-Inspektor):
- ✅ F12 drücken
- ✅ Inspektor öffnen
- ✅ Layout-Panel wählen
- ✅ Grid-Überlagerung aktivieren
🔧 Online Tools
| Tool | URL | Zweck |
|---|---|---|
| Grid Garden | https://cssgridgarden.com/ | Spielerisches Lernen |
| CodePen | https://codepen.io/ | Code teilen und üben |
| JSFiddle | https://jsfiddle.net/ | Code-Schnipsel testen |
| MDN Web Docs | https://developer.mozilla.org/ | Dokumentation |
8. Cheat Sheet
📋 Kurzreferenz
Container aktivieren:
css
.container { display: grid; }
.container { display: inline-grid; }Spalten/Zeilen definieren:
css
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: 100px auto;Wiederholung:
css
grid-template-columns: repeat(3, 1fr);Bereich:
css
grid-template-columns: minmax(100px, 1fr) 2fr;Abstand:
css
gap: 20px;
row-gap: 30px;
column-gap: 20px;Ausrichtung:
css
justify-items: center;
align-items: center;
justify-content: center;
align-content: center;Elemente platzieren:
css
grid-column: 1 / 3;
grid-row: 1 / span 2;
grid-area: header;Ausrichtung (einzeln):
css
justify-self: center;
align-self: center;Reihenfolge:
css
order: 1;📝 Zusammenfassung
In diesem Anhang haben Sie gelernt:
✅ Kernbegrife:
- Grid-Container, Grid-Elemente, Grid-Linien, Grid-Tracks, Grid-Zellen, Grid-Bereiche
✅ Container-Eigenschaften:
grid-template-columns/rows,gap,justify/align-items/content
✅ Element-Eigenschaften:
grid-column/row,grid-area,justify/align-self,order
✅ Häufige Fehler:
display: gridfalsch geschrieben- Keine Spalten/Zeilen definiert
frEinheit missverstanden- Grid-Linien falsch gezählt
auto-fillundauto-fitverwechselt
✅ Best Practices:
frEinheit verwendenminmax()für responsives Designgapstattmargingrid-template-areasfür komplexe Layouts- Grid und Flexbox kombinieren
- Mobile-First Ansatz
✅ Browser-Kompatibilität:
- Moderne Browser unterstützen Grid vollständig
- IE 11 wird nicht unterstützt
✅ Nützliche Tools:
- Browser DevTools
- Grid Garden
- CodePen
- MDN Web Docs
✅ Cheat Sheet:
- Kurzreferenz für schnellen Zugriff
🎯 Nächste Schritte
Herzlichen Glückwunsch! Sie haben den kompletten CSS Grid Layout Kurs durchlaufen!
Weiterführende Themen:
- 📖 CSS Container Queries
- 📖 CSS Subgrid
- 📖 Fortgeschrittene Responsive Design Techniken
👉 Zurück zu Kapitel 1: Einführung
💡 Tipps für die Praxis
- Üben Sie täglich: 30 Minuten pro Tag sind besser als 5 Stunden am Stück
- Erstellen Sie eigene Projekte: Bauen Sie Webseiten mit Grid Layout
- Verwenden Sie DevTools: Die Grid-Überlagerung ist Ihr bester Freund
- Testen Sie auf echten Geräten: Was auf Desktop gut aussieht, kann auf Mobile katastrophal sein
- Seien Sie geduldig: CSS Grid hat eine Lernkurve, aber es lohnt sich!
Viel Erfolg bei Ihrer CSS Grid Reise! 🚀
