Zum Inhalt springen
Läuft lokal · kein Upload

Flexbox interaktiv mit Achsen-Overlay üben

Wechselst du flex-direction auf column, kippt alles. Das Achsen-Overlay zeigt, warum.

Vorschau
1
2
3
4
Container-Eigenschaften
flex-direction
justify-content
align-items
flex-wrap
gap
8px
Anzahl Items
4
Code-Ausgabe
.container {
  display: flex;
  flex-direction: row;
  gap: 8px;
}
Voreinstellungen

So funktioniert es

  1. 01

    Text oder Code einfügen

    Füge deinen Inhalt in das Eingabefeld ein oder tippe direkt.

  2. 02

    Automatische Verarbeitung

    Das Tool verarbeitet den Inhalt sofort und zeigt das Ergebnis.

  3. 03

    Ergebnis kopieren

    Kopiere das Ergebnis mit einem Klick in die Zwischenablage.

Datenschutz

Alle Berechnungen laufen direkt in deinem Browser. Keine Daten werden auf Server übertragen.

Container-Properties links, Live-Vorschau rechts, Code unten. Ein Overlay zeichnet Haupt- und Querachse live ein, ein Slider simuliert die Container-Breite, ein Warn-Panel meldet, wenn Einstellungen keinen Effekt haben. Direkt im Browser, ohne Account.

Container-Properties
6
Item-Overrides
5
Code-Formate
3
01 — Anleitung

Wie benutzt du dieses Tool?

  1. Container-Properties einstellen — flex-direction, justify-content, align-items, flex-wrap, gap.
  2. Item klicken, um Per-Item-Overrides (order, grow, shrink, basis, align-self) zu bearbeiten.
  3. Code als Plain-CSS, Tailwind v4 oder Tailwind v3 kopieren — drei Tabs, ein Klick.

Was macht der Flexbox-Playground?

Der Playground baut Flexbox-Layouts visuell. Du siehst links die Eingabefelder für die sechs Container-Properties — flex-direction, justify-content, align-items, align-content, flex-wrap, gap — und rechts die Live-Vorschau mit echten Flex-Items, die deine Einstellungen sofort umsetzen. Klickst du auf ein Item, öffnen sich die Per-Item-Overrides: order, flex-grow, flex-shrink, flex-basis, align-self.

Über der Vorschau steuert ein Container-Breiten-Slider die Stage-Breite von 240 px bis 1200 px. So testest du in Sekunden, wie sich dasselbe Layout in einer schmalen Sidebar gegenüber einem breiten Hauptbereich verhält — ohne das Browser-Fenster zu skalieren oder DevTools zu öffnen. Das ist die schnellste Annäherung an Container-Queries ohne tatsächliche @container-Regel.

Warum zeichnet ein Overlay die Achsen ein?

Der häufigste Anfänger-Fehler beim Lernen von Flexbox ist der Achsen-Wechsel. Setzt du flex-direction: row, läuft die Hauptachse horizontal, die Querachse vertikal. Sobald du auf column wechselst, tauschen beide. Plötzlich kontrolliert justify-content die vertikale Ausrichtung, align-items die horizontale — und ein Layout, das eben noch funktionierte, sieht völlig anders aus. Das Achsen-Overlay zeichnet die aktuelle Haupt- und Querachse direkt in die Vorschau ein, mit Pfeilen und Beschriftungen. Du siehst sofort, welche Property gerade welche Richtung steuert.

In den meisten Konkurrenz-Playgrounds fehlt dieses Overlay. Das Resultat: Entwickler probieren wahllos justify-content-Werte aus, weil sie nicht sehen, dass die Achse nach dem Wechsel auf column vertikal verläuft. Mit eingeblendeten Achsen wird das Trial-and-Error zu gezielter Einstellung. Lässt sich oben rechts per Checkbox abschalten, falls das Overlay stört.

Wie verhalten sich flex-grow, flex-shrink und flex-basis?

Diese drei Properties bilden die Kurzschreibweise flex und entscheiden, wie Items Platz verteilen oder hergeben.

PropertyBedeutungDefault
flex-growWie aggressiv ein Item übrigen Platz beansprucht. 0 = gar nicht, 1 = teilt sich den Rest, 2 = doppelt so viel wie 1.0
flex-shrinkWie aggressiv ein Item schrumpft, wenn der Platz knapp wird. 0 = nie kleiner als die Basis, 1 = teilt den Mangel.1
flex-basisIdeale Größe, bevor verteilt oder weggenommen wird. auto = Content-Größe, 0 = vollständig per grow steuern.auto

Eine häufige Falle: flex-basis: 0 mit flex-grow: 1 (kurz flex: 1) verteilt den Container-Platz gleichmäßig, aber Items mit langem Inhalt können trotzdem überlaufen. Grund: Items haben standardmäßig min-width: auto, also nie kleiner als der intrinsische Minimal-Inhalt. Fix: min-width: 0 auf das Item setzen. Der Playground warnt bei dieser Kombination automatisch.

Wann nimmt man Flexbox, wann CSS Grid?

Flexbox und CSS Grid sind komplementär, nicht konkurrierend. Die Daumenregel: Flexbox für eine Achse, Grid für zwei Achsen.

Flexbox passt zu:

  • Navigationsleisten, Header-Toolbars, Tab-Bars
  • Karten in einer Reihe mit gleicher Höhe
  • Vertikale Sidebar-Menüs
  • Zentriertes Modal-Innenleben
  • Sticky-Footer (Container flex-direction: column, Main mit flex-grow: 1)
  • Form-Layouts mit Label links / Eingabe rechts

Grid passt besser zu:

  • Ganze Seiten-Layouts mit Sidebar, Header, Main, Footer
  • Karten-Raster mit gleichen Abständen in beide Richtungen
  • Magazin-Layouts mit übergreifenden Bereichen
  • Tabellen-ähnliche Strukturen ohne <table>
  • Holy-Grail-Layouts mit fixen Außenspalten

In der Praxis kombiniert man beides: Grid für das Außenskelett, Flexbox für die Innen-Komponenten. Der Playground generiert ausschließlich Flexbox-Code — für Grid gibt es ein eigenständiges Schwester-Tool im Backlog.

Wie schreibe ich Flexbox als Tailwind-Utility-Classes?

Tailwind hat seit der v3.0 (Dezember 2021) durchgängig dieselben Flexbox-Class-Namen verwendet — die grow-, shrink- und basis-…-Utilities sind also auf v3 und v4 identisch. Wer einen älteren Codebase mit flex-grow, flex-shrink-0 oder flex-basis-[120px] sieht, schaut auf Tailwind v2-Reste oder eine handgepflegte Klassenliste — das war nie offizielles v3.

KonzeptTailwind v3 / v4Pure CSS
Wachsengrowflex-grow: 1
Variabel wachsengrow-[2]flex-grow: 2
Nicht schrumpfenshrink-0flex-shrink: 0
Variabel schrumpfenshrink-[2]flex-shrink: 2
Basis-Wertbasis-[120px]flex-basis: 120px
Auto-Basisbasis-autoflex-basis: auto

Der Playground bietet beide Tabs (tailwind-v3 und tailwind-v4) trotzdem an, damit Migrations-Audits, IDE-Snippets und Code-Reviewer den Output 1:1 in beide Codebases kopieren können. Inhaltlich emittieren beide Tabs identische Class-Namen — der Unterschied zwischen v3 und v4 liegt nicht in den Flexbox-Utilities, sondern in CSS-first-Konfiguration (@theme), Lightning-CSS-Engine und umbenannten Gradient-Utilities (bg-linear-to-* statt bg-gradient-to-*).

Warum passiert manchmal nichts beim Einstellen?

Flexbox hat einige stille Interaktionen — du änderst eine Property und nichts ändert sich. Häufige Ursachen:

align-content ohne Wrap. align-content ordnet Flex-Linien entlang der Querachse. Linien existieren aber nur, wenn flex-wrap: wrap oder wrap-reverse aktiv ist. Bei nowrap gibt es genau eine Linie — align-content hat nichts zu tun. Der Playground meldet das im Hinweise-Panel.

justify-self auf einem Item. Diese Property existiert in CSS Grid, aber NICHT in Flexbox. Wer ein einzelnes Item entlang der Hauptachse verschieben will, nimmt margin-left: auto auf dem Item — der Trick verschiebt das Item plus alle Nachfolger nach rechts (bei flex-direction: row). So entsteht das klassische „Logo links, Menü rechts”-Pattern.

flex-basis ohne flex-grow. Setzt du flex-basis: 0, sind alle Items theoretisch null Pixel breit — wachsen aber nicht weiter, weil flex-grow: 0 der Default ist. Items kollabieren auf min-content. Fix: zusätzlich flex-grow: 1 setzen, oder die Kurzschreibweise flex: 1 nutzen.

min-width: auto blockt Schrumpfen. Items haben standardmäßig min-width: auto — sie werden nie kleiner als ihr intrinsischer Mindest-Inhalt. Bei langen Texten oder breiten Bildern sprengt das Inhalts-Items das Container-Layout. Fix: min-width: 0 auf dem Item.

Welche Anwendungsfälle decken die Presets ab?

Fünf Real-World-Layouts mit jeweils einem Lerntipp:

Navigationsleiste. Container mit flex-direction: row und gap: 16px. Das erste Item (Logo) bekommt flex-grow: 1, sodass alle übrigen Items nach rechts gedrückt werden. Lerntipp: Statt des nicht existierenden justify-self nimmt man margin-left: auto auf dem letzten Element vor der Menü-Gruppe.

Karten-Raster. flex-wrap: wrap plus gap: 16px lässt Karten umbrechen, sobald der Platz nicht reicht. Items mit flex-basis: 200px und flex-grow: 1 füllen jede Zeile gleichmäßig. Lerntipp: min-width: 0 auf Karten mit langem Inhalt, sonst sprengen sie das Layout.

Holy-Grail-Layout. Drei-Spalten-Layout mit fester Sidebar links, flüssigem Main, fester Sidebar rechts. Außenspalten bekommen flex: 0 0 200px, Main flex: 1 1 auto. Lerntipp: Beim Wechsel auf flex-direction: column für Mobile kippen die Achsen — Sidebar wird oben/unten, nicht mehr links/rechts.

Klebriger Footer. Container hat flex-direction: column und füllt mindestens die Viewport-Höhe. Das Main-Element bekommt flex-grow: 1, Footer hängt automatisch unten. Lerntipp: Kein position: absolute nötig — Flexbox erledigt das robust und ohne Z-Index-Konflikte.

Zentriert auf beiden Achsen. Klassisches „Hello World” der Flexbox-Welt. justify-content: center plus align-items: center auf dem Container, das war’s. Lerntipp: Auf dem zentrierten Item ist KEINE zusätzliche Property nötig — der Container erledigt alles.

Häufige Fragen

Wie funktioniert Flexbox in CSS?

Flexbox ist ein eindimensionales Layout-Modell. Ein Elternelement mit display: flex wird zum Flex-Container; seine direkten Kinder werden zu Flex-Items, die entlang einer Hauptachse angeordnet werden. Die Hauptachse legt flex-direction fest, die Querachse steht senkrecht dazu.

Was ist der Unterschied zwischen Flexbox und CSS Grid?

Flexbox ist eindimensional — Items wandern entweder in einer Reihe oder in einer Spalte. CSS Grid ist zweidimensional und definiert Zeilen UND Spalten gleichzeitig. Faustregel: Komponenten mit Flexbox, ganze Seiten-Layouts mit Grid.

Wann sollte man Flexbox statt Grid nutzen?

Immer wenn der Inhalt entlang einer Achse fließen soll: Navigationsleisten, Toolbars, Karten in einer Reihe, vertikale Sidebar-Listen, zentriertes Modal-Innenleben. Sobald du parallel Zeilen UND Spalten kontrollieren willst, ist Grid das richtige Werkzeug.

Wie zentriert man Items vertikal und horizontal mit Flexbox?

Auf den Container display: flex; justify-content: center; align-items: center; setzen. Das funktioniert mit jeder Anzahl von Items und ohne explizite Höhe am Item selbst. Achtung: align-items braucht eine Höhe am Container, sonst gibt es keine Querachse zum Zentrieren.

Warum funktionieren align-content und flex-wrap zusammen?

align-content ordnet ganze Flex-Linien entlang der Querachse — und Linien gibt es nur, wenn umgebrochen wird. Bei flex-wrap: nowrap existiert nur eine Linie, also wirkt align-content nicht. Sobald flex-wrap: wrap aktiv ist, kontrolliert die Eigenschaft den Abstand zwischen den Linien.

Was bedeuten flex-grow, flex-shrink und flex-basis?

flex-basis ist die ideale Größe, bevor Platz verteilt oder weggenommen wird. flex-grow legt fest, wie aggressiv ein Item überschüssigen Platz beansprucht (0 = gar nicht, 1 = teilt sich den Rest, 2 = doppelt so viel wie 1). flex-shrink macht das Gegenteil, wenn der Platz knapp wird. Die Kurzschreibweise flex: 1 1 0 setzt alle drei.

Wie unterscheiden sich Flexbox-Klassen in Tailwind v4 von v3?

Tailwind v4 hat den flex- Prefix auf Item-Utilities entfernt: grow, shrink-0, basis-[120px] ersetzen flex-grow, flex-shrink-0, flex-basis-[120px]. Container-Utilities (flex, flex-col, justify-center, items-center) bleiben gleich. Der Playground gibt beide Varianten parallel aus.

Speichert das Tool meine Layouts?

Nein. Alle Einstellungen liegen ausschließlich im Browser-Tab — kein Server, kein Account, keine Cookies. Beim Neuladen startet der Playground mit den Default-Werten. Wer ein Layout sichern will, kopiert den Code-Output in das eigene Stylesheet.

Welche CSS-Tools sind verwandt?

Weitere Tools für visuelles CSS-Authoring:

Zuletzt aktualisiert:

Das könnte dir auch gefallen