Skip to content

Anhang: Grid Layout Kernwissen

📚 Inhaltsverzeichnis

  1. Kernbegrife
  2. Container-Eigenschaften
  3. Element-Eigenschaften
  4. Häufige Fehler
  5. Best Practices
  6. Browser-Kompatibilität
  7. Nützliche Tools
  8. 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

EigenschaftBeschreibungStandardwert
displayAktiviert Grid Layout (grid oder inline-grid)inline
grid-template-columnsDefiniert Spaltennone
grid-template-rowsDefiniert Zeilennone
grid-template-areasDefiniert Bereichenone
gapAbstand zwischen Elementen0
row-gapZeilenabstand0
column-gapSpaltenabstand0
justify-itemsHorizontale Ausrichtung (Zellen)stretch
align-itemsVertikale Ausrichtung (Zellen)stretch
justify-contentHorizontale Ausrichtung (Grid)start
align-contentVertikale Ausrichtung (Grid)start
grid-auto-columnsImplizite Spaltenauto
grid-auto-rowsImplizite Zeilenauto
grid-auto-flowPlatzierungsalogrithmusrow

📊 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

EigenschaftBeschreibungStandardwert
grid-columnSpalten-Positionauto
grid-rowZeilen-Positionauto
grid-areaBereichszuweisungauto
justify-selfHorizontale Ausrichtung (einzeln)auto
align-selfVertikale Ausrichtung (einzeln)auto
orderReihenfolge0
z-indexÜberlappungauto

📊 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:

  • fr verteilt 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)

BrowserVersionStatus
Chrome66+✅ Vollständig unterstützt
Firefox61+✅ Vollständig unterstützt (bester Grid-Inspektor)
Safari12+✅ Vollständig unterstützt
Edge79+✅ 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:

  1. ✅ F12 drücken
  2. ✅ Element auswählen
  3. ✅ Auf Grid-Symbol neben display: grid klicken
  4. ✅ Grid-Linien werden im Browser angezeigt

Firefox (bester Grid-Inspektor):

  1. ✅ F12 drücken
  2. ✅ Inspektor öffnen
  3. ✅ Layout-Panel wählen
  4. ✅ Grid-Überlagerung aktivieren

🔧 Online Tools

ToolURLZweck
Grid Gardenhttps://cssgridgarden.com/Spielerisches Lernen
CodePenhttps://codepen.io/Code teilen und üben
JSFiddlehttps://jsfiddle.net/Code-Schnipsel testen
MDN Web Docshttps://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: grid falsch geschrieben
  • Keine Spalten/Zeilen definiert
  • fr Einheit missverstanden
  • Grid-Linien falsch gezählt
  • auto-fill und auto-fit verwechselt

Best Practices:

  • fr Einheit verwenden
  • minmax() für responsives Design
  • gap statt margin
  • grid-template-areas fü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

  1. Üben Sie täglich: 30 Minuten pro Tag sind besser als 5 Stunden am Stück
  2. Erstellen Sie eigene Projekte: Bauen Sie Webseiten mit Grid Layout
  3. Verwenden Sie DevTools: Die Grid-Überlagerung ist Ihr bester Freund
  4. Testen Sie auf echten Geräten: Was auf Desktop gut aussieht, kann auf Mobile katastrophal sein
  5. Seien Sie geduldig: CSS Grid hat eine Lernkurve, aber es lohnt sich!

Viel Erfolg bei Ihrer CSS Grid Reise! 🚀

Frei für alle Anfänger