Zum Inhalt springen

CSS Grid - Grundlagen

Flexbox ordnet Kinder entlang einer Achse an. CSS Grid legt ein echtes Gitternetz aus Zeilen und Spalten über ein Element:

Grid auf verschiedenen Geräten

.page {
display: grid;
}
.page {
display: grid;
grid-template-columns: 270px 1fr 1fr;
grid-template-rows: 60px auto 100px;
}
  • grid-template-columns legt fest, wie breit jede Spalte ist - hier drei Spalten
  • grid-template-rows legt fest, wie hoch jede Zeile ist - hier drei Zeilen
  • Die direkten Kinder von .page werden automatisch der Reihe nach in die Zellen dieses Rasters einsortiert
.page {
display: grid;
grid-template-columns: 270px 5fr 3fr;
}

fr steht für fraction (Bruchteil). Zuerst werden die absoluten Angaben (hier 270px) von der Gesamtbreite abgezogen. Der restliche Platz wird dann im Verhältnis der fr-Werte verteilt:

  • Verfügbare Breite: 1280px
  • Minus feste erste Spalte: 1280px - 270px = 1010px
  • Verteilung im Verhältnis 5 zu 3 auf Spalte zwei und drei:
    • Spalte 2: 5 × (1010px / 8) ≈ 631px
    • Spalte 3: 3 × (1010px / 8) ≈ 379px

Genau wie bei Flexbox:

.page {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 16px;
}

Für viele gleich breite Spalten müsst ihr sie nicht einzeln auflisten:

.gallery {
display: grid;
grid-template-columns: repeat(3, 1fr); /* = 1fr 1fr 1fr */
gap: 12px;
}