Dieser Artikel ist Teil 3 einer vierteiligen Serie zu den Grundlagen von HTML und CSS. Falls dir Selektoren und das Box-Model noch neu sind, starte mit Teil 2: CSS Grundlagen. Danach geht es weiter mit Teil 4: Responsive Webdesign.
Sobald du mehr als ein einzelnes Element stylen willst – etwa eine Navigationsleiste mit mehreren Links nebeneinander oder ein Raster aus Produktkarten – reichen einfache Box-Model-Eigenschaften nicht mehr aus. Dafür wurden Flexbox und Grid entwickelt: zwei moderne CSS-Layout-Systeme, die komplexe Anordnungen mit wenigen Zeilen Code lösen, wo früher hässliche Float- und Positionierungs-Hacks nötig waren. Dieser Guide erklärt beide Systeme, zeigt praktische Beispiele und hilft dir zu entscheiden, wann du welches einsetzt.
Inhaltsverzeichnis
Warum überhaupt Flexbox oder Grid?
Vor Flexbox und Grid mussten Entwickler Layouts mit Tricks wie float oder position: absolute bauen – fehleranfällig und schwer wartbar. Flexbox (seit ca. 2015 breit unterstützt) und Grid (seit ca. 2017) sind eigens für Layout-Probleme entworfene CSS-Module. Die Kurzformel:
- Flexbox ist eindimensional: Es ordnet Elemente in EINER Richtung an – entweder als Zeile oder als Spalte.
- Grid ist zweidimensional: Es ordnet Elemente gleichzeitig in Zeilen UND Spalten an, wie ein echtes Raster.
Flexbox: Elemente in einer Reihe oder Spalte anordnen
Um Flexbox zu aktivieren, setzt du auf ein Eltern-Element display: flex. Alle direkten Kind-Elemente werden dann automatisch zu “Flex-Items”:
<div class="flex-container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
.flex-container {
display: flex;
gap: 16px;
justify-content: space-between;
align-items: center;
}
Die wichtigsten Flexbox-Eigenschaften für den Einstieg:
display: flex– aktiviert Flexbox auf dem Containerflex-direction–row(Standard, nebeneinander) odercolumn(untereinander)justify-content– Ausrichtung entlang der Hauptachse:flex-start,center,space-between,space-aroundalign-items– Ausrichtung entlang der Querachse:flex-start,center,stretchgap– Abstand zwischen den Elementen, ohne Margin-Tricksflex-wrap: wrap– erlaubt Elementen, in eine neue Zeile umzubrechen, statt gequetscht zu werden
Typischer Anwendungsfall: eine horizontale Navigationsleiste, ein zentrierter Login-Button, eine Karte mit Bild links und Text rechts.
CSS Grid: Echte zweidimensionale Raster
Grid aktivierst du mit display: grid auf dem Container. Der große Unterschied zu Flexbox: Du definierst Spalten UND Zeilen explizit:
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
repeat(3, 1fr) erzeugt drei gleich breite Spalten (1fr = “ein Anteil des verfügbaren Platzes”). Das ist eine der häufigsten Grid-Anwendungen: ein Produktraster, eine Bildergalerie, ein Dashboard-Layout.
Die wichtigsten Grid-Eigenschaften für den Einstieg:
display: grid– aktiviert Grid auf dem Containergrid-template-columns– definiert Anzahl und Breite der Spaltengrid-template-rows– definiert Anzahl und Höhe der Zeilengap– Abstand zwischen Zellen (horizontal und vertikal)grid-column/grid-row– legt fest, wie viele Zellen ein einzelnes Element einnimmt
Ein besonders praktisches Feature ist auto-fit mit minmax() für responsive Raster ohne Media Queries:
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
Diese eine Zeile sorgt dafür, dass so viele Spalten wie möglich nebeneinanderpassen (jede mindestens 250px breit), und dass bei schmaleren Bildschirmen automatisch weniger Spalten angezeigt werden – ganz ohne zusätzliche Breakpoints.
Flexbox vs. Grid: Wann nutzt du was?
Die häufigste Einsteigerfrage – hier die praktische Faustregel:
- Nutze Flexbox, wenn du Elemente in EINER Richtung anordnen willst: eine Navigationsleiste, eine Button-Gruppe, eine Card mit Bild und Text nebeneinander, das Zentrieren eines einzelnen Elements.
- Nutze Grid, wenn du ein echtes zweidimensionales Layout brauchst: die Gesamtstruktur einer Seite (Header, Sidebar, Content, Footer), ein Produktraster, eine Bildergalerie mit mehreren Zeilen und Spalten.
In der Praxis kombinieren die meisten modernen Webseiten beide: Grid für das grobe Seitenlayout, Flexbox für die Feinausrichtung innerhalb einzelner Grid-Zellen. Sie schließen sich nicht gegenseitig aus – sie ergänzen sich.
Praxisbeispiel: Ein Seitenlayout mit Grid, Navigation mit Flexbox
<div class="seite">
<header class="kopf">
<nav class="nav">
<a href="#">Start</a>
<a href="#">Blog</a>
<a href="#">Kontakt</a>
</nav>
</header>
<aside class="sidebar">Sidebar</aside>
<main class="inhalt">Hauptinhalt</main>
<footer class="fuss">Footer</footer>
</div>
.seite {
display: grid;
grid-template-columns: 250px 1fr;
grid-template-areas:
"kopf kopf"
"sidebar inhalt"
"fuss fuss";
}
.kopf { grid-area: kopf; }
.sidebar { grid-area: sidebar; }
.inhalt { grid-area: inhalt; }
.fuss { grid-area: fuss; }
.nav {
display: flex;
gap: 24px;
}
Grid übernimmt hier die grobe Gesamtstruktur mit benannten Bereichen (grid-template-areas – ein sehr lesbares Grid-Feature), Flexbox ordnet innerhalb der Navigation die einzelnen Links nebeneinander an.
Wie geht es weiter?
Mit Flexbox und Grid kannst du jetzt vollständige Layouts bauen. Der letzte fehlende Baustein ist: Wie sorgst du dafür, dass dieses Layout auf jedem Gerät – vom kleinen Smartphone bis zum großen Desktop-Monitor – gut aussieht? Das ist Thema von Teil 4 dieser Serie: Responsive Webdesign: Wie deine Webseite auf jedem Gerät gut aussieht.
Häufig gestellte Fragen zu Flexbox und Grid
Kann ich Flexbox und Grid gleichzeitig auf einer Seite verwenden?
Ja, sogar sehr empfohlen. Ein typisches Muster ist Grid für das übergeordnete Seitenlayout und Flexbox für kleinere Komponenten innerhalb der Grid-Zellen, etwa eine Navigationsleiste oder eine Kartenreihe.
Ist Flexbox einfacher zu lernen als Grid?
Für die meisten Einsteiger ja, weil Flexbox nur eine Richtung berücksichtigt und mit wenigen Eigenschaften (justify-content, align-items, gap) schon viel erreicht. Grid hat mehr Konzepte (Spalten, Zeilen, benannte Bereiche), lohnt sich aber für komplexere Layouts.
Muss ich Float-Layouts noch lernen?
Für neue Projekte nicht mehr. Floats waren vor Flexbox/Grid der Standardweg für Layouts, gelten heute aber als veraltet. Du wirst sie höchstens in älterem Code antreffen.
Was bedeutet 1fr in CSS Grid?
fr steht für “fraction” (Anteil) und beschreibt einen Bruchteil des verfügbaren Platzes im Grid-Container. grid-template-columns: 1fr 2fr erzeugt zwei Spalten, wobei die zweite doppelt so breit ist wie die erste.
Funktionieren Flexbox und Grid in allen Browsern?
Ja, beide werden seit vielen Jahren von allen modernen Browsern (Chrome, Firefox, Safari, Edge) vollständig unterstützt und sind heute Industriestandard für CSS-Layouts.
Teil 3 von 4 dieser Serie





