Flexbox Grundlagen
Flexbox ist ein Layout-System in CSS, mit dem du Elemente in einer Richtung anordnen kannst – entweder in einer Zeile oder in einer Spalte. Du setzt display: flex auf den Container, und die direkten Kindelemente werden automatisch als Flex-Items behandelt.
Was ist ein Flexbox-Layout?
Ein Flexbox-Layout besteht aus zwei Teilen:
- Flex-Container – das Eltern-Element mit display: flex
- Flex-Items – die direkten Kindelemente im Container, die ausgerichtet und verteilt werden
Flexbox ist ein eindimensionales Layout-System. Du steuerst also entweder eine Zeile oder eine Spalte – nicht beides gleichzeitig wie bei CSS Grid. Das macht Flexbox ideal für Navigationen, Button-Leisten oder Bereiche, in denen Elemente nebeneinander oder untereinander stehen sollen.
Hauptachse und Querachse
In einem Flex-Container gibt es zwei Richtungen:
- Hauptachse (Main Axis) – die Richtung, in der die Items angeordnet werden (standardmäßig horizontal, von links nach rechts)
- Querachse (Cross Axis) – die Richtung senkrecht dazu (standardmäßig vertikal)
Mit flex-direction kannst du die Hauptachse drehen – zum Beispiel auf column, damit die Items untereinander statt nebeneinander stehen. Die ausführlichen Eigenschaften lernst du in den folgenden Flexbox-Kapiteln.
Ein einfaches Beispiel
HTML – Flex-Container mit drei Items
1<div class="container">
2 <div>Item 1</div>
3 <div>Item 2</div>
4 <div>Item 3</div>
5</div>CSS – Einfaches Flexbox-Layout
1.container {
2 display: flex;
3 gap: 1rem;
4}Die drei Kindelemente stehen nebeneinander in einer Zeile. Mit gap entsteht automatisch Abstand zwischen den Items – ohne extra Margin.
Einsatzgebiete von Flexbox
Flexbox eignet sich besonders für:
- Navigationen – Menüpunkte horizontal oder vertikal ausrichten
- Button-Leisten – mehrere Buttons nebeneinander mit gleichmäßigem Abstand
- Karten in einer Reihe – Produkte, Team-Mitglieder oder Icons nebeneinander
- Vertikal zentrieren – Inhalte in der Mitte eines Containers platzieren
- Footer-Layouts – Links, Mitte und Rechts in einer Zeile verteilen
Flexbox oder CSS Grid?
Flexbox und Grid ergänzen sich. Eine einfache Faustregel:
- Flexbox – wenn du Elemente in einer Richtung anordnest (eine Zeile oder eine Spalte)
- CSS Grid – wenn du Zeilen und Spalten gleichzeitig planst und das gesamte Layout strukturierst
In der Praxis kombinierst du oft beides: Grid für das große Seitenlayout, Flexbox für kleinere Bereiche wie Navigation, Header oder Formularzeilen.
Im nächsten Kapitel lernst du: Eigenschaften des Containers