Grid Praxis-Layouts

Zuletzt aktualisiert am 15. Februar 2026

Grid-Theorie ist das eine, echte Layouts bauen das andere. In diesem Artikel findest du die häufigsten Layout-Patterns, die du mit CSS Grid lösen kannst: ein flexibles 12-Spalten-System, ein Dashboard mit benannten Bereichen, ein Magazine-Layout mit verschieden großen Karten, und responsive Raster, die sich ohne Media Queries anpassen. Jedes Beispiel kannst du direkt kopieren und in deinem Projekt anpassen.

Syntax
display: grid
Initialwert
(siehe Einzeleigenschaften)
Vererbt
Nein
Animierbar
Nein

12-Spalten-Grid

Das klassische 12-Spalten-System, wie du es von Bootstrap kennst, lässt sich mit CSS Grid in zwei Zeilen bauen. Items platzierst du mit span, und die Mathematik stimmt immer.

12-Spalten-Grid
.grid-12 {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 8px;
}

.col-12 { grid-column: span 12; }
.col-8  { grid-column: span 8; }
.col-6  { grid-column: span 6; }
.col-4  { grid-column: span 4; }
.col-3  { grid-column: span 3; }

Dashboard-Layout

Ein typisches Dashboard mit Header, Sidebar, Hauptbereich und Widgets. grid-template-areas macht die Struktur sofort lesbar, und verschachteltes Grid im Widget-Bereich sorgt für flexible Inhalte.

Dashboard-Layout
.dashboard {
  display: grid;
  grid-template-areas:
    "header  header  header"
    "sidebar main    main"
    "sidebar widgets widgets";
  grid-template-columns: 140px 1fr 1fr;
  grid-template-rows: 45px 1fr auto;
  gap: 8px;
}

.header  { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }

/* Verschachteltes Grid für Widgets */
.widgets {
  grid-area: widgets;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

Magazine-Layout

Ein asymmetrisches Layout, bei dem der Featured-Artikel einen großen Bereich einnimmt und kleinere Artikel drumherum angeordnet sind. Das erreichst du mit grid-column: span und grid-row: span.

Magazine-Layout
.magazine {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 80px;
  gap: 8px;
}

/* Featured: 2 Spalten, 2 Zeilen */
.featured {
  grid-column: span 2;
  grid-row: span 2;
}

/* Breiter Artikel: 2 Spalten */
.medium { grid-column: span 2; }

Responsive ohne Media Queries

Mit repeat(auto-fit, minmax(250px, 1fr)) erstellt der Browser automatisch so viele Spalten wie nötig. Die Karten sind mindestens 250px breit und füllen den Rest mit 1fr. Kein JavaScript, keine Media Queries.

Responsives Card-Grid ohne Media Queries
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
}

/* auto-fit: leere Spalten werden zusammengeklappt
   minmax(250px, 1fr): mindestens 250px, maximal 1fr
   → Responsive ohne Media Queries! */

Responsive mit Grid-Template-Areas

Für komplexere Layouts, bei denen sich die Struktur auf verschiedenen Bildschirmgrößen grundlegend ändert, kombinierst du grid-template-areas mit Media Queries.

Responsive Layout (Mobile-Ansicht)
/* Mobile: alles gestapelt */
.layout {
  display: grid;
  grid-template-areas:
    "header"
    "nav"
    "main"
    "aside"
    "footer";
  grid-template-columns: 1fr;
  gap: 8px;
}

/* Tablet: 2-Spalten */
@media (min-width: 768px) {
  .layout {
    grid-template-areas:
      "header header"
      "nav    nav"
      "main   aside"
      "footer footer";
    grid-template-columns: 1fr 200px;
  }
}

/* Desktop: 3-Spalten */
@media (min-width: 1024px) {
  .layout {
    grid-template-areas:
      "header header header"
      "nav    main   aside"
      "footer footer footer";
    grid-template-columns: 160px 1fr 200px;
  }
}

Barrierefreiheit

Responsive Grid-Layouts sind eine häufige Quelle für Barrierefreiheitsprobleme. Wenn sich das visuelle Layout zwischen Mobile, Tablet und Desktop stark unterscheidet, kann die Lesereihenfolge für Screenreader inkonsistent oder verwirrend werden.

Kritische Punkte:

  • DOM-Reihenfolge über alle Breakpoints testen: Die Reihenfolge muss für Mobile, Tablet und Desktop logisch bleiben. Wenn die Sidebar auf Mobile nach oben wandert, sollte sie auch im DOM vor dem Hauptinhalt stehen.
  • Tab-Reihenfolge bei verschiedenen Viewport-Größen prüfen: Teste mit der Tab-Taste, ob die Fokusreihenfolge bei jedem Breakpoint Sinn ergibt. Sprünge zwischen weit entfernten Bereichen sind verwirrend.
  • Komplexe Magazine-Layouts kritisch prüfen: Asymmetrische Layouts mit verschieden großen Karten können eine visuelle Reihenfolge erzeugen, die von der DOM-Reihenfolge abweicht. Für Bildergalerien ist das egal, bei Artikellisten problematisch.

Best Practice: Baue deine Layouts “Mobile First” und erweitere sie für größere Screens. So bleibt die DOM-Reihenfolge meist natürlich. Teste regelmäßig mit Screenreader und Tastatur, nicht nur visuell.

Tipps für die Praxis

  • auto-fit statt auto-fill für responsive Grids: auto-fit klappt leere Spalten zusammen, sodass deine Items den gesamten Platz nutzen. Das ist in den meisten Fällen das gewünschte Verhalten.
  • Benannte Areas für komplexe Layouts: Wenn dein Layout mehr als 3-4 Bereiche hat, sind grid-template-areas viel lesbarer als Liniennummern. Der CSS-Code liest sich wie eine visuelle Darstellung des Layouts.
  • minmax() statt fester Breiten: minmax(200px, 1fr) gibt deinen Spalten eine Mindestbreite, lässt sie aber flexibel wachsen. Das ist robuster als feste Pixelwerte.
  • Grid für 2D, Flexbox für 1D: Verwende Grid, wenn du Zeilen UND Spalten gleichzeitig kontrollieren willst. Für einfache Reihen (Navigation, Button-Gruppen) ist Flexbox oft einfacher.
  • Verschachteltes Grid ist normal: Ein Grid-Item kann selbst ein Grid-Container sein. Das ist kein Anti-Pattern, sondern der empfohlene Weg für komplexe Layouts wie Dashboards.
  • Teste mit gap: Ein gap von 8-16px macht den Unterschied zwischen einem professionellen und einem zusammengequetschten Layout. gap ist sauberer als Margins, weil kein Abstand am Rand entsteht.
  • Mobile First bei grid-template-areas: Definiere zuerst das Mobile-Layout (gestapelt) und erweitere es in Media Queries für Tablet und Desktop. So funktioniert dein Layout auch ohne CSS.

Browser-Kompatibilität

Alle in diesem Artikel verwendeten Grid-Eigenschaften werden von allen modernen Browsern vollständig unterstützt.

ClientUnterstützungHinweise
ChromeKomplett
FirefoxKomplett
SafariKomplett
EdgeKomplett
OperaKomplett

Email-Kompatibilität

Grid-Layouts funktionieren in HTML-Emails nur in Apple Mail und Thunderbird teilweise. Für E-Mail-Layouts solltest du auf Tabellen-basierte Layouts zurückgreifen.

ClientUnterstützungHinweise
Apple MailTeilweiseGrundlegende Grid-Layouts werden unterstützt
GmailKeineGrid wird komplett ignoriert
OutlookKeineKein Grid-Support, Tabellen-Layouts verwenden
ThunderbirdTeilweiseGrundlegende Grid-Layouts werden unterstützt
Yahoo MailKeineKein Grid-Support

Verwandte Eigenschaften

Bleib auf dem Laufenden

Erhalte neue Inhalte direkt in dein Postfach

Mit der Anmeldung akzeptierst du unsere Datenschutzerklärung. Du kannst dich jederzeit über den Link in den E-Mails wieder abmelden.

Was erwartet dich?

Neue Artikel & Videos

Wenn ich was Neues veröffentliche, erfährst du's hier zuerst.

Plattform & Kurs-Updates

Neue Kurse, Referenz-Updates und gelegentlich Sonderpreise zum Launch.

Einmal die Woche in deinem Postfach

Kurz, auf den Punkt, kein Spam.