Übersicht: CSS-Flexbox

Die Flexbox (Flexible Box Layout) ist ein CSS-Modul, das für einfaches, dynamisches Anordnen von Elementen in Zeilen oder Spalten entwickelt wurde.
Sie erleichtert die Erstellung von zentrierten, responsiven und gleichmäßig verteilten Layouts.

1. Grundstruktur

HTML

<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

CSS

.container {
  display: flex;       /* aktiviert Flexbox */
}

2. Hauptbegriffe

BegriffBeschreibung
Flex ContainerDas übergeordnete Element mit display: flex
Flex ItemsDie direkten Kindelemente im Container
Main AxisHauptachse, standardmäßig horizontal (left → right)
Cross AxisQuerachse, senkrecht zur Hauptachse

3. Container-Eigenschaften

EigenschaftWerteBeschreibung
displayflex / inline-flexAktiviert das Flexbox-Layout
flex-directionrow (Standard) / row-reverse / column / column-reverseRichtung der Hauptachse
flex-wrapnowrap / wrap / wrap-reverseUmbruch der Elemente
flex-flowKombi aus flex-direction und flex-wrapKurzschreibweise
justify-contentflex-start / flex-end / center / space-between / space-around / space-evenlyAusrichtung entlang der Hauptachse
align-itemsstretch (Standard) / flex-start / flex-end / center / baselineAusrichtung entlang der Querachse
align-contentstretch / flex-start / flex-end / center / space-between / space-aroundNur relevant bei mehreren Zeilen (mit flex-wrap)
gapz.B. 10px, 3rem oder 5%Abstand („Gutter“) zwischen Items im Container

4. Item-Eigenschaften

EigenschaftWerte / SyntaxBeschreibung
orderZahl (Standard: 0)Reihenfolge der Items (niedrig = zuerst)
flex-growZahl (z. B. 1)Wie stark ein Item wächst, um freien Platz zu füllen
flex-shrinkZahl (z. B. 1)Wie stark ein Item schrumpft, wenn Platz fehlt
flex-basisLängenwert / autoAusgangsgröße eines Items vor Wachstum oder Schrumpfung
flexflex-grow flex-shrink flex-basisKurzschreibweise (z. B. flex: 1 0 200px;); bevorzugt verwenden, weil automatisch intelligente Wertzuweisung für shrink und basis, wenn nicht vergeben !
align-selfauto / flex-start / flex-end / center / baseline / stretchÜberschreibt align-items für ein einzelnes Item

5. Beispiele

Zentrieren in beide Richtungen

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
}

Gleichmässige Verteilung

.container {
  display: flex;
  justify-content: space-between;
}

Flexibles Layout mit fester und dynamischer Spalte

.sidebar {
  flex: 0 0 200px; /* fix 200px */
}
.main {
  flex: 1; /* füllt restlichen Platz */
}

6. Kurzschreibweise

flex: <grow> <shrink> <basis>;
BeispielBedeutung
flex: 1;wächst gleichmäßig, Basis = 0
flex: 0 1 auto;Standardwert
flex: 2 0 100px;doppelte Wachstumsrate, Basis 100px

7. Vergleich Flex vs Grid

KriteriumFlexboxGrid
Achsen1D (eine Achse)2D (Zeilen & Spalten)
FokusVerteilung von ItemsStruktur ganzer Layouts
ReihenfolgeDynamisch mit orderFeste Rasterpositionen
Beste NutzungNavigation, Karten, ZentrierungSeitenlayouts, komplexe Strukturen

8. Links

CSS-Tricks: https://css-tricks.com/snippets/css/a-guide-to-flexbox/