Skip to content

Anhang: Flexbox Kernwissen auf einen Blick

1. Kernbegriffe im Überblick

BegriffDefinitionWichtig für
Flex-ContainerElement mit display: flex oder display: inline-flexGrundlage von allem!
Flex-ElementDirektes Kindelement eines Flex-ContainersWerden automatisch ausgerichtet
Hauptachse (Main Axis)Achse, entlang der Flex-Elemente angeordnet werdenBestimmt durch flex-direction
Querachse (Cross Axis)Steht senkrecht zur HauptachseWichtig für align-items
Main Start / Main EndAnfang und Ende der HauptachseVerständnis der Richtung
Cross Start / Cross EndAnfang und Ende der QuerachseVerständnis der Ausrichtung

2. Container-Eigenschaften (Nach Häufigkeit sortiert, mit Standardwerten)

display

  • Werte: flex | inline-flex
  • Standard: inline (wenn nicht gesetzt)
  • Bedeutung: Aktiviert Flexbox

justify-content

  • Werte: flex-start | flex-end | center | space-between | space-around | space-evenly
  • Standard: flex-start
  • Bedeutung: Ausrichtung auf der Hauptachse

align-items

  • Werte: stretch | flex-start | flex-end | center | baseline
  • Standard: stretch
  • Bedeutung: Ausrichtung auf der Querachse (einzelne Elemente)

flex-direction

  • Werte: row | row-reverse | column | column-reverse
  • Standard: row
  • Bedeutung: Richtung der Hauptachse

flex-wrap

  • Werte: nowrap | wrap | wrap-reverse
  • Standard: nowrap
  • Bedeutung: Umbruch erlauben

align-content

  • Werte: stretch | flex-start | flex-end | center | space-between | space-around
  • Standard: stretch
  • Bedeutung: Ausrichtung von Zeilen (nur bei Umbruch!)
  • Wichtig: Wirkt nur wenn flex-wrap: wrap gesetzt ist!

gap

  • Werte: <length> (z.B. 20px)
  • Standard: 0
  • Bedeutung: Abstand zwischen Flex-Elementen

row-gap

  • Werte: <length>
  • Standard: 0
  • Bedeutung: Vertikaler Abstand zwischen Zeilen (bei Umbruch)

column-gap

  • Werte: <length>
  • Standard: 0
  • Bedeutung: Horizontaler Abstand zwischen Elementen in einer Zeile

flex-flow

  • Werte: <flex-direction> <flex-wrap>
  • Standard: row nowrap
  • Bedeutung: Kurzschreibweise für flex-direction + flex-wrap

3. Element-Eigenschaften (Nach Häufigkeit sortiert, mit Standardwerten)

flex

  • Werte: <flex-grow> <flex-shrink> <flex-basis>
  • Standard: 0 1 auto
  • Bedeutung: Kurzschreibweise für flex-grow, flex-shrink, flex-basis
  • Häufig verwendet: flex: 1 (gleichmäßige Verteilung)

flex-grow

  • Werte: <non-negative zahl> (z.B. 0, 1, 2)
  • Standard: 0
  • Bedeutung: Vergrößerungsfaktor (überschüssigen Platz aufteilen)

flex-shrink

  • Werte: <non-negative zahl>
  • Standard: 1
  • Bedeutung: Verkleinerungsfaktor (Schrumpfung bei Überlauf)

flex-basis

  • Werte: <length> | auto
  • Standard: auto
  • Bedeutung: Ausgangsgröße auf der Hauptachse

order

  • Werte: <ganzzahl>
  • Standard: 0
  • Bedeutung: Reihenfolge der Elemente ändern (niedriger = früher)

align-self

  • Werte: auto | flex-start | flex-end | center | baseline | stretch
  • Standard: auto (übernimmt align-items vom Container)
  • Bedeutung: Einzelnes Element anders ausrichten (überschreibt align-items)

4. Häufige Layout-Code-Vorlagen (Kopieren & Einfügen)

Vorlage 1: Horizontale Zentrierung

css
.container {
  display: flex;
  justify-content: center;
}

Vorlage 2: Vertikale Zentrierung

css
.container {
  display: flex;
  align-items: center;
  height: 300px;  /* Wichtig: Höhe muss gesetzt sein! */
}

Vorlage 3: Perfekte Zentrierung (Horizontal + Vertikal)

css
.container {
  display: flex;
  justify-content: center;  /* Horizontal */
  align-items: center;      /* Vertikal */
  height: 300px;          /* Wichtig: Höhe muss gesetzt sein! */
}
css
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  background-color: #333;
  color: white;
}

Vorlage 5: Elemente gleichmäßig verteilen

css
.container {
  display: flex;
  justify-content: space-between;  /* Oder space-around, space-evenly */
}

Vorlage 6: Ein Element nach rechts schieben

css
.push-right {
  margin-left: auto;
}

Vorlage 7: Karten-Layout (responsiv, mit Umbruch)

css
.card-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

.card {
  flex: 1 0 300px;  /* Mindestens 300px breit, dann gleichmäßig */
}
css
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;  /* Hauptinhalt nimmt restlichen Platz ein */
}

Vorlage 9: Drei-spaltiges Layout (Sidebar + Content + Ads)

css
.layout {
  display: flex;
}

.sidebar {
  flex: 0 0 200px;  /* Fix 200px */
}

.content {
  flex: 1;           /* Restlichen Platz einnehmen */
}

.ads {
  flex: 0 0 150px;  /* Fix 150px */
}

Vorlage 10: Responsives Layout (Mobile-First)

css
/* Standard (Mobile): Untereinander */
.container {
  display: flex;
  flex-direction: column;
}

/* Tablet und größer: Nebeneinander */
@media (min-width: 768px) {
  .container {
    flex-direction: row;
  }
}

5. Häufige Fehler-Schnellübersicht

FehlerSymptomUrsacheLösung
Flexbox wirkt nichtElemente verhalten sich wie normale Block-Elementedisplay: flex vergessen oder Tippfehlerdisplay: flex setzen (richtig schreiben!)
Ausrichtung wirkt nichtjustify-content oder align-items haben keine Wirkungflex-direction geändert → Hauptachse ist jetzt vertikal/horizontaljustify-content wirkt jetzt auf die neue Richtung der Hauptachse!
align-content wirkt nichtZeilen werden nicht ausgerichtetflex-wrap: wrap vergessenflex-wrap: wrap setzen!
Elemente überlaufen ContainerLayout brichtflex-shrink: 0 gesetzt (dürfen nicht schrumpfen)flex-shrink: 1 setzen oder min-width: 0 hinzufügen
width wird ignoriertBreite ändert sich nichtflex-basis ist gesetzt (hat Vorrang)flex-basis verwenden (oder width weglassen)
Höhenunterschiede bei ElementenElemente sind unterschiedlich hochalign-items: stretch (Standard) streckt alle auf gleiche Höhealign-items: flex-start setzen (wenn gewünscht)

6. Browser-Kompatibilität (Kurzfassung)

BrowserUnterstützt ab VersionBemerkung
Chrome29+ (August 2013)Voll unterstützt
Firefox28+ (März 2014)Voll unterstützt
Safari9+ (Oktober 2015)Voll unterstützt (ältere Versionen brauchen -webkit- Präfix)
Edge12+ (Juli 2015)Voll unterstützt
Opera17+ (Oktober 2013)Voll unterstützt
IE10+ (mit -ms- Präfix)Teilweise unterstützt (IE10/11)
IE9 und älter❌ Nicht unterstütztFallback mit Float oder Inline-Block nötig

Empfehlung:

Heutzutage ist Flexbox sicher zu verwenden, da die meisten Nutzer moderne Browser verwenden. Nur wenn du IE9 oder älter unterstützen musst, ist ein Fallback notwendig.


7. Häufige Interviewfragen (Kurzantworten)

Frage 1: Was ist der Unterschied zwischen Flexbox und Grid?

  • Flexbox: 1-dimensional (entweder Zeile ODER Spalte)
  • Grid: 2-dimensional (Zeilen UND Spalten gleichzeitig)

Frage 2: Was ist justify-content?

Ausrichtung von Flex-Elementen auf der Hauptachse.

Frage 3: Was ist align-items?

Ausrichtung von Flex-Elementen auf der Querachse.

Frage 4: Was ist der Unterschied zwischen align-items und align-content?

  • align-items: Ausrichtung einzelner Elemente (immer)
  • align-content: Ausrichtung von Zeilen (nur bei Umbruch!)

Frage 5: Was macht flex: 1?

Kurzschreibweise für flex-grow: 1, flex-shrink: 1, flex-basis: 0%. Alle Elemente wachsen gleichmäßig.

Frage 6: Wie zentriert man ein Element perfekt (horizontal + vertikal)?

css
.container {
  display: flex;
  justify-content: center;
  align-items: center;
}
css
.navbar {
  display: flex;
  justify-content: space-between;
}

Frage 8: Warum wird width manchmal ignoriert?

Weil flex-basis gesetzt ist (hat Vorrang vor width bei flex-direction: row).


8. Nützliche Ressourcen (Kurzfassung)

RessourceLinkArt
MDN Flexboxhttps://developer.mozilla.org/de/docs/Web/CSS/CSS_Flexible_Box_LayoutDokumentation (Deutsch)
CSS Tricks: A Complete Guide to Flexboxhttps://css-tricks.com/snippets/css/a-guide-to-flexbox/Nachschlagewerk (Englisch)
Flexbox Froggyhttps://flexboxfroggy.com/#deSpielerisch lernen (Deutsch)
Flexbox Defensehttp://www.flexboxdefense.com/Spielerisch lernen (Englisch)
Kevin Powell (YouTube)https://www.youtube.com/kevinpowellVideos (Englisch)
Codepenhttps://codepen.io/Code-Beispiele

9. Lernschritte (Empfohlene Reihenfolge)

  1. Kapitel 1-2: Grundlagen, Entwicklungsumgebung
  2. Kapitel 3-4: Kernbegriffe, Flexbox aktivieren
  3. Kapitel 5-7: Container-Eigenschaften (flex-direction, justify-content, align-items)
  4. Kapitel 8-10: Element-Eigenschaften (order, align-self, flex-grow, flex-shrink, flex-basis, gap)
  5. Kapitel 11-12: Praxisbeispiele (Zentrierung, Navigation, Karten-Layout, responsives Design)
  6. Kapitel 13-15: Fehlerbehebung, fortgeschrittene Tipps, Interviewfragen
  7. Kapitel 16-17: Erweiterung (Grid, Frameworks, Ressourcen)

10. Checkliste: Hast du alles verstanden?

  • [ ] Ich weiß, was ein Flex-Container und ein Flex-Element ist
  • [ ] Ich verstehe den Unterschied zwischen Hauptachse und Querachse
  • [ ] Ich kann justify-content und align-items korrekt verwenden
  • [ ] Ich weiß, was flex-grow, flex-shrink und flex-basis machen
  • [ ] Ich kann flex: 1 und flex: none korrekt einsetzen
  • [ ] Ich kann ein Element perfekt zentrieren (horizontal + vertikal)
  • [ ] Ich kann eine Navigation mit Logo links und Links rechts erstellen
  • [ ] Ich kann ein Karten-Layout mit Umbruch erstellen
  • [ ] Ich kann häufige Fehler beheben (align-content wirkt nicht, width wird ignoriert)
  • [ ] Ich kenne nützliche Ressourcen (MDN, Flexbox Froggy, CSS Tricks)

Wenn alle Punkte abgehakt sind: Herzlichen Glückwunsch! Du hast Flexbox gemeistert! 🎉


Abschlusswort

Flexbox ist ein mächtiges Werkzeug für moderne Webentwicklung.

Mit dem Wissen aus diesem Kurs bist du in der Lage, die meisten Layout-Probleme schnell und effizient zu lösen. Übe weiterhin mit echten Projekten und schau dir Code von anderen an, um deine Fähigkeiten zu verbessern.

Viel Erfolg bei deiner Reise als Frontend-Entwickler! 🚀

Frei für alle Anfänger