Vergleich 9 Min. Lesezeit

CSS Grid vs Flexbox: Wann welches Layout?

Beide Module lösen Layout-Probleme, aber selten dasselbe. Diese Entscheidungshilfe zeigt mit Tabelle und Praxis-Szenarien, wann Sie zu Grid greifen und wann Flexbox die klügere Wahl ist.

Jan-Tristan Rudat
Von Jan-Tristan Rudat , Redakteur
Aktualisiert: Juni 2026

Die Frage „Grid oder Flexbox?" stellt sich in fast jedem Frontend-Projekt, und sie hat eine erstaunlich klare Antwort, sobald man eine einzige Eigenschaft verstanden hat: die Dimension. Flexbox denkt in einer Linie, CSS Grid denkt in einem Raster. Wer das verinnerlicht, wählt das passende Werkzeug fast automatisch richtig. In diesem Ratgeber gehen wir den Unterschied praxisnah durch, mit einer Vergleichstabelle, konkreten Szenarien und Code, den Sie direkt übernehmen können.

Der eine Unterschied, der alles erklärt: eindimensional vs. zweidimensional

Flexbox ist ein eindimensionales Layout-Modul. Es ordnet seine Kinder entlang einer Hauptachse an, entweder in einer Zeile (flex-direction: row) oder in einer Spalte (column). Die Anordnung in der jeweils anderen Richtung passiert nur indirekt, etwa durch Umbruch mit flex-wrap. Flexbox eignet sich also immer dann, wenn der Inhalt fließen darf und nur eine Richtung wirklich zählt.

CSS Grid ist zweidimensional. Es kontrolliert Spalten und Zeilen gleichzeitig. Sie definieren ein Raster mit grid-template-columns und grid-template-rows und platzieren Elemente gezielt in den entstehenden Zellen. Grid ist deshalb das Werkzeug, wenn das Layout zuerst feststeht und der Inhalt sich einordnet.

Der zweite, oft übersehene Unterschied ist der gedankliche Ausgangspunkt: Flexbox arbeitet vom Inhalt her (content-out), Grid arbeitet vom Layout her (layout-in). Bei Flexbox bestimmen die Elemente, wie viel Platz sie brauchen, und der Container verteilt den Rest. Bei Grid legen Sie das Raster fest, und die Elemente fügen sich ein.

Flexbox: eine Achse Hauptachse (row) CSS Grid: zwei Achsen
Flexbox verteilt entlang einer Hauptachse. CSS Grid ordnet zugleich in Spalten und Zeilen.

Merksatz: Brauchen Sie Kontrolle über eine Reihe von Elementen, nehmen Sie Flexbox. Brauchen Sie Kontrolle über Zeilen und Spalten zugleich, nehmen Sie Grid. Diese eine Frage beantwortet die meisten Fälle.

Direkter Vergleich: Grid und Flexbox in der Tabelle

Die folgende Tabelle stellt die Eigenschaften gegenüber, die in der Praxis den Ausschlag geben. Beide Module sind im offiziellen CSS-Standard spezifiziert (CSS Grid Layout Module Level 1, CSS Flexible Box Layout Module Level 1).

Eigenschaft Flexbox CSS Grid
Dimension Eindimensional (Zeile oder Spalte) Zweidimensional (Zeilen und Spalten)
Ansatz Inhalt zuerst (content-out) Layout zuerst (layout-in)
Ausrichtung Verteilt Elemente in einer Achse Richtet an Zeilen und Spalten exakt aus
Überlappung Nicht vorgesehen Möglich (grid-area plus z-index)
Lücken (gap) Ja, gap unterstützt Ja, von Anfang an Kernfunktion
Typische Aufgabe Navigation, Button-Reihe, Zentrieren Seitenlayout, Karten-Galerie, Dashboard
Browser-Support Sehr breit, seit Jahren stabil Über 97 %, stabil seit März 2017

Praxis-Szenario 1: Navigationsleiste (Flexbox gewinnt)

Eine Navigationsleiste hat ein Logo links und Menüpunkte rechts. Das ist eine klassische eindimensionale Aufgabe: alle Elemente liegen in einer Zeile, der Abstand zwischen Logo und Menü soll flexibel sein. Flexbox löst das mit drei Zeilen Code.

.nav {
  display: flex;
  align-items: center;      /* vertikal mittig */
  justify-content: space-between; /* Logo links, Menü rechts */
  gap: 1.5rem;
}

Hier wäre Grid Overkill. Sie müssten Spalten definieren, obwohl die Elemente einfach nur nebeneinander fließen sollen. justify-content: space-between erledigt den Rest, ganz unabhängig davon, wie viele Menüpunkte hinzukommen.

Praxis-Szenario 2: Karten-Galerie und Seitenlayout (Grid gewinnt)

Eine Galerie aus gleich großen Karten, die sich automatisch an die Bildschirmbreite anpasst, ist die Paradedisziplin von CSS Grid. Mit auto-fit und minmax brauchen Sie dafür keine einzige Media Query:

.galerie {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

Jede Karte ist mindestens 240 Pixel breit. Passt eine weitere Spalte in die verfügbare Breite, fügt Grid sie automatisch hinzu, sonst bricht es um. Mit Flexbox ginge das auch, aber die Karten in der letzten Zeile würden sich ungleichmäßig dehnen, weil Flexbox eben keine echten Spalten kennt.

Dasselbe gilt für ein komplettes Seitenlayout mit Header, Sidebar, Hauptbereich und Footer. Hier richten benannte Bereiche das Raster sauber aus, etwas, das Flexbox strukturell nicht leisten kann:

.seite {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  gap: 1rem;
}
.header  { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main    { grid-area: main; }
.footer  { grid-area: footer; }

Vorsicht bei der visuellen Reihenfolge: Sowohl order in Flexbox als auch die freie Platzierung in Grid verändern nur die visuelle Anordnung, nicht die Reihenfolge im DOM. Screenreader und Tastatur-Navigation folgen weiterhin der Quellordnung. Verlassen Sie sich nie allein auf die visuelle Ordnung, sonst leidet die Barrierefreiheit (WCAG 1.3.2: bedeutungstragende Reihenfolge).

Der häufigste Fehler: Grid und Flexbox als Konkurrenten zu sehen

In der Praxis ist die Frage selten „entweder Grid oder Flexbox", sondern fast immer „beides, jeweils an der richtigen Stelle". Die beiden Module ergänzen sich, sie ersetzen sich nicht. Ein typisches Muster sieht so aus:

Wer einmal verinnerlicht hat, dass Grid die Räume schafft und Flexbox sie füllt, schreibt deutlich weniger CSS und wartbareren Code. Es lohnt sich, beide Module sicher zu beherrschen, statt sich auf eines festzulegen.

Entscheidungshilfe: drei Fragen, die genügen

Wenn Sie sich unsicher sind, beantworten Sie der Reihe nach diese drei Fragen. Spätestens die zweite gibt fast immer eine eindeutige Antwort.

  1. Geht es um Zeilen und Spalten zugleich? Ja: Grid. Nein, nur eine Richtung: weiter zu Frage 2.
  2. Soll der Inhalt seine Größe selbst bestimmen? Ja, Elemente fließen je nach Inhalt: Flexbox. Nein, sie sollen sich an ein festes Raster halten: Grid.
  3. Müssen Elemente sich überlappen oder exakt an Linien ausgerichtet werden? Ja: Grid. Das kann Flexbox nicht leisten.

Ein praktischer Tipp zum Ausprobieren: Bauen Sie ein Raster zunächst visuell im CSS Grid Generator auf und exportieren Sie den Code. So sehen Sie sofort, ob Ihre Layout-Idee als Grid funktioniert oder ob eine einfache Flexbox-Zeile die schlankere Lösung ist.

Häufige Fragen zu Grid und Flexbox

Was ist der Hauptunterschied zwischen CSS Grid und Flexbox?

Flexbox ist eindimensional und ordnet Elemente entlang einer einzigen Achse an, also entweder als Zeile oder als Spalte. CSS Grid ist zweidimensional und steuert Zeilen und Spalten gleichzeitig. Faustregel: Flexbox für eine Richtung, Grid für ein echtes Raster.

Wann sollte ich Flexbox statt Grid verwenden?

Flexbox passt, wenn der Inhalt die Größe bestimmen soll und nur eine Achse relevant ist: Navigationsleisten, Button-Gruppen, Tag-Listen, das Zentrieren eines einzelnen Elements oder das gleichmäßige Verteilen von Elementen in einer Zeile.

Wann ist CSS Grid die bessere Wahl?

CSS Grid ist überlegen, wenn das Layout zuerst kommt und Inhalte in ein vorgegebenes Raster eingefügt werden: Seitenlayouts mit Header, Sidebar und Footer, Karten-Galerien, Dashboards und überall dort, wo Spalten und Zeilen aufeinander ausgerichtet sein müssen.

Kann ich Grid und Flexbox zusammen verwenden?

Ja, und das ist der Normalfall. Grid baut die Makro-Struktur der Seite, Flexbox ordnet die Inhalte innerhalb der einzelnen Grid-Zellen. Ein Grid-Item kann selbst ein Flex-Container sein. Beide Module sind dafür gebaut, kombiniert zu werden.

Ist CSS Grid schneller als Flexbox?

In der Praxis ist die Render-Performance bei beiden für übliche Layouts nicht spürbar unterschiedlich. Die Wahl sollte sich nach der Layout-Aufgabe richten, nicht nach vermeintlichen Geschwindigkeitsunterschieden. Wichtiger als Mikro-Performance ist eine saubere, wartbare Struktur.

Welches Layout-Modul hat den besseren Browser-Support?

Beide werden seit Jahren von allen relevanten Browsern unterstützt. Flexbox ist minimal länger stabil verfügbar, doch CSS Grid wird laut MDN seit März 2017 in allen modernen Browsern unterstützt und liegt heute bei über 97 Prozent globaler Abdeckung. Für neue Projekte besteht bei keinem der beiden ein Support-Risiko.

Quellen

Verwandte Artikel

Grundlagen

CSS Grid lernen: Der komplette Einsteiger-Leitfaden 2026

Responsive

Responsive Layouts mit CSS Grid: minmax und auto-fit

Technik

grid-template-areas: Benannte Bereiche für wartbare Layouts

Layout direkt ausprobieren

Bauen Sie Ihr Raster visuell zusammen und exportieren Sie sauberen CSS-Grid-Code, kostenlos und komplett im Browser.

Zum CSS Grid Generator
← Alle Ratgeber
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige