edubun
Deutsch

Grid-Grundlagen

grid-template-columns: repeat(3, 1fr) erzeugt in einer Zeile Code drei gleiche Spalten, und der Browser setzt jedes Kind in die nächste freie Zelle.

Zeilen und Spalten zugleich

Grid, das CSS-Modul Grid Layout, ist für zweidimensionale Layouts gebaut: Zeilen und Spalten zusammen. Du zeichnest das Raster auf den Container, und die Items fallen in seine Zellen. Flexbox geht von den Items aus und lässt sie ihre Größe aushandeln. Grid geht vom Layout aus und setzt die Items hinein. Deshalb ist es das natürliche Werkzeug für Fotogalerien, Kartenlisten und die Grundform einer Seite mit Kopfbereich, Seitenleiste, Hauptinhalt und Fußbereich.

.gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);  /* three equal columns */
  gap: 10px;
}
.gallery .wide { grid-column: span 2; }    /* this item covers two columns */
Eine dreispaltige Galerie mit einem breiten Item.

Spuren und die Einheit fr

grid-template-columns listet die Breite jeder Spalte auf, einer sogenannten Spur (track). Du kannst jede Länge verwenden, etwa 200px 1fr, aber Grid bringt eine eigene Einheit mit: fr, ein Bruchteil des freien Platzes. 1fr 1fr 1fr ergibt drei gleiche Spalten, 2fr 1fr macht die erste Spalte doppelt so breit wie die zweite. Die Einheit fr verteilt nur den Platz, der nach festen Spuren und Lücken übrig bleibt. 200px 1fr ergibt also eine Seitenleiste von 200 Pixeln, und die Hauptspalte bekommt den Rest. repeat(3, 1fr) ist eine kürzere Schreibweise für 1fr 1fr 1fr. grid-template-rows macht dasselbe für Zeilen, aber oft lässt man die Zeilen in Ruhe, damit sie so hoch werden wie ihr Inhalt.

repeat(3, 1fr) mit 20px Lücke. Die Zahlen unten sind die Rasterlinien, 1 bis 4. Das grüne Item erstreckt sich über zwei Spalten, von Linie 1 bis Linie 3.

Items platzieren

Standardmäßig füllen Items das Raster in der Reihenfolge des Quelltexts, je eine Zelle, von links nach rechts und dann in die nächste Zeile. Um ein Item größer zu machen, lässt grid-column: span 2 es zwei Spalten abdecken und grid-row: span 2 zwei Zeilen. Die Linien zwischen den Spuren sind ab 1 nummeriert. Ein dreispaltiges Raster hat also die Linien 1 bis 4, und grid-column: 1 / 3 heißt von Linie 1 bis Linie 3. grid-column: 1 / -1 zieht ein Item über die ganze Breite, weil negative Zahlen vom Ende her zählen.

Bereiche benennen

Für ein Seitenlayout kannst du mit grid-template-areas das Layout mit Wörtern zeichnen. Jede Zeichenkette in Anführungszeichen ist eine Zeile, jedes Wort eine Zelle. Wiederholt man ein Wort, erstreckt sich ein Bereich über diese Zellen. Dann bekommt jedes Item grid-area mit dem passenden Namen. Das Layout unten liest sich fast wie eine Skizze: der Kopfbereich oben über die ganze Breite, Seitenleiste und Hauptinhalt nebeneinander und der Fußbereich unten. Um das Layout fürs Handy zu ändern, schreibt man nur diese paar Zeichenketten neu, oft innerhalb einer Media Query.

.page {
  display: grid;
  grid-template-columns: 200px 1fr;
  grid-template-areas:
    "head head"
    "side main"
    "foot foot";
  gap: 16px;
}
header { grid-area: head; }
aside  { grid-area: side; }
main   { grid-area: main; }
footer { grid-area: foot; }
Ein ganzes Seitenlayout, gezeichnet mit Bereichsnamen.

Spalten, die zum Bildschirm passen

Ein Muster aus den Grid-Anleitungen von MDN lohnt sich zum Auswendiglernen: grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)). minmax(150px, 1fr) sagt, dass jede Spalte mindestens 150 Pixel breit sein muss und wachsen darf, um den Platz zu teilen, und auto-fill erzeugt so viele Spalten, wie hineinpassen. Das Ergebnis ist eine Galerie, die auf dem Handy zwei Spalten zeigt und auf einem breiten Bildschirm fünf oder sechs, wieder ohne Media Query. Wie Flexbox kann auch Grid Items in einer anderen Reihenfolge als im HTML platzieren, und es gilt dieselbe Vorsicht: Lesereihenfolge und sichtbare Reihenfolge gleich halten.

Grid-ContainerDas Elternelement mit display: grid
Spur (track)Eine Zeile oder eine Spalte des Rasters
frEin Bruchteil des freien Platzes
repeat(3, 1fr)Dasselbe wie 1fr 1fr 1fr
RasterlinieAb 1 nummeriert; 3 Spalten haben die Linien 1 bis 4
span 2Item deckt zwei Spuren ab
grid-template-areasZeichnet das Layout mit Namen, eine Zeichenkette pro Zeile
minmax()Eine Spurgröße zwischen einem Minimum und einem Maximum
  1. Für Layouts in wie vielen Dimensionen ist Grid gebaut?
  2. Ein 600px breites Grid hat die Spalten 1fr 2fr und keine Lücke. Wie breit ist die zweite Spalte?
  3. Ein 700px breites Grid hat die Spalten 200px 1fr und 20px Lücke. Wie breit ist die 1fr-Spalte?
  4. Wie viele Spaltenlinien (senkrechte Rasterlinien) hat ein Grid mit 4 Spalten?
  5. Was bewirkt grid-column: 1 / -1?
    • Zieht das Item über alle Spalten
    • Versteckt das Item
    • Setzt es nur in die letzte Spalte
  6. Wofür ist repeat(4, 1fr) die Kurzform?
    • 1fr 1fr 1fr 1fr
    • 4fr
    • 1fr 4fr
  7. Wofür steht in grid-template-areas eine Zeichenkette in Anführungszeichen?
    • Eine Zeile
    • Eine Spalte
    • Ein Item
  8. Welche Eigenschaft weist ein Item einem benannten Bereich zu?
  9. Was bedeutet minmax(150px, 1fr) für eine Spalte?
    • Mindestens 150px, wächst mit, um den freien Platz zu teilen
    • Genau 150px
    • Höchstens 150px
  10. Was passt zu einem zweidimensionalen Seitenlayout mit Kopfbereich, Seitenleiste und Fußbereich?
    • grid
    • flexbox
    • float
Das Wichtigste
  • display: grid plus grid-template-columns zeichnet die Spuren; fr teilt den freien Platz.
  • Items füllen die Zellen der Reihe nach; span und Liniennummern platzieren sie.
  • grid-template-areas zeichnet ein Seitenlayout mit Namen; repeat(auto-fill, minmax()) passt die Spalten an den Bildschirm an.
Quellen zu diesem Kurs (6)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17)
  • every code exercise checked with a Playwright probe against a reference solution.

Abgerufen: 2026-10-17