Flexbox#

Das Flexbox Layout bietet einen einfachen Weg um Elemente auf einer Webseite nebeneinander darzusellen, auszurichten und freien Platz automatisch zu verteilen.

Dazu richtet Flexbox die Elemente auf einer Main-Achse und einer Kreuz-Achse aus.

Flexbox Aufbau
  • Die Haupt-Achse ist die primäre Achse, auf der alle Elemente horizontal ausgerichtet werden.

  • Die Kreuz-Achse ist die sekundäre Achse, auf der die Elemente vertikal ausgerichtet werden.

Wichtig

Flexbox benötigt immer ein block-Element als Container - den flex-container - für die Elemente - flex-items - innerhalb des Containers. Diese flex-items richten sich dann innerhalb des flex-containers aus.

display#

Flexbox wird über die Eigenschaft display aktiviert.

display flex bewirkt, dass das Element ein flex-container wird und alle Elemente innerhalb dieses Containers werden zu flex-items.

.container {
  display: flex;
}

See the Pen flexbox1 by csswebsite (@csswebsite) on CodePen.

flex-direction#

Flexbox Richtung

Mittels der Eigenschaft flex-direction kann die Ausrichtung der Elemente festgelegt werden.

Eigenschaftswert

Erklärung

row

Standardwert. Die Elemente werden horizontal ausgerichtet.

row-reverse

Die Elemente werden horizontal und rückwärts ausgerichtet.

column

Die Elemente werden vertikal ausgerichtet. Die Haupt-Achse wird dabei um 90° gedreht.

column-reverse

Die Elemente werden vertikal und rückwärts ausgerichtet. Die Haupt-Achse wird dabei um 90° gedreht.

.container {
  display: flex;
  flex-direction: row | row-reverse | column | column-reverse;
}

See the Pen flexbox2 by csswebsite (@csswebsite) on CodePen.

flex-wrap#

Flexbox Umbruch

Mittels der Eigenschaft flex-wrap kann bestimmt werden, ob Elemente in die nächste Zeile umbrechen sollen oder nicht.

Bemerkung

Umbrechen tun Elemente, wenn nicht mehr genügen Platz vorhanden ist.

Eigenschaftswert

Erklärung

nowrap

Standardwert. Die Elemente brechen nicht um.

wrap

Die Elemente brechen um.

wrap-reverse

Die Elemente werden vertikal ausgerichtet. Die Haupt-Achse wird dabei um 90° gedreht.

.container {
  display: flex;
  flex-wrap: nowrap | wrap | wrap-reverse;
}

See the Pen flexbox3 by csswebsite (@csswebsite) on CodePen.

justify-content#

Flexbox Justify

Mit der CSS Eigenschaft justify-content können Elemente auf der Haupt-Achse ausgerichtet werden.

Eigenschaftswert

Erklärung

flex-start

Standardwert. Alle Elemente werden am Anfang positioniert.

flex-end

Alle Elemente werden am Ende positioniert.

center

Alle Elemente werden zentriert positioniert.

space-between

Das erste Element ist links positioniert, das letzte Element am Ende. Alle anderen Elemente werden auf den restlichen Platz verteilt.

space-around

Im Vergleich zu space-between erhalten das erste Element links etwas etwas freien Raum und das letzte Element rechts etwas freien Raum.

space-evenly

Alle Elemente sind gleichmäßig verteilt.

.container {
  display: flex;
  justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
}

See the Pen flexbox-justify by csswebsite (@csswebsite) on CodePen.

align-items#

Align Items

Mit der CSS Eigenschaft align-items können Elemente auf der Kreuz-Achse ausgerichtet werden.

Eigenschaftswert

Erklärung

stretch

Standardwert. Alle Elemente auf die Höhe des Elternelementes oder auf die Höhe des Elementes mit dem größten Inhalt gestretcht.

flex-start

Alle Elemente werden am Anfang positioniert.

flex-end

Alle Elemente werden am Ende positioniert.

center

Alle Elemente werden zentriert positioniert.

.container {
  display: flex;
  align-items: stretch | flex-start | flex-end | center;
}

See the Pen flexbox-align by csswebsite (@csswebsite) on CodePen.

gap#

Flexbox Gap

Gap bestimmt den Abstand zwischen Elementen horizontal und vertikal.

Eigenschaftswert

Erklärung

10px

10px Abstand horizontal und vertikal zwischen den Elementen.

10px 20px

10px vertikaler Abstand und 20px horizontaler Abstand.

10px 0

10px vertikaler Abstand und 0px horizontaler Abstand.

0 10px

0px vertikaler Abstand und 10px horizontaler Abstand.

Wichtig

Die gap-Eigenschaft kontrolliert nur den Platz zwischen den Elementen.

.container {
  display: flex;
  gap: 10px 20px;
}

See the Pen flexbox-gap by csswebsite (@csswebsite) on CodePen.

Die nachfolgenden Eigenschaften beziehen sich nicht mehr auf den flex-container, sondern direkt auf die flex-items.

flex-grow#

Flexbox flex-grow

Mittels der CSS Eigenschaft flex-grow kann bestimmt werden, wie Elemente den freien Platz innerhalb des Containers ausfüllen können.

Elemente können, selbst wenn sie eine feste Breite haben, sich selbstständig vergrößern und freien Platz ausfüllen.

Eigenschaftswert

Erklärung

0

Standard. Die Größe wird anhand von width oder dem Inhalt bestimmt.

1, 2, 3

Aktiviert flex-grow und gibt den Faktor an, um den die Elemente wachsen dürfen.

.container {
  display: flex;
}

.box1 {
  flex-grow: 1;
}

.box2 {
  flex-grow: 2;
}

See the Pen flexfox-flexgrow by csswebsite (@csswebsite) on CodePen.

flex-shrink#

Flexbox flex-shrink

Mittels der CSS Eigenschaft flex-shrink können Elemente kleiner werden.

Eigenschaftswert

Erklärung

1

Standard. Elemente können kleiner werden.

0

Deaktiviert. Elemente können nicht kleiner werden.

.container {
  display: flex;
}

.box1 {
  flex-shrink: 1;
}

.box2 {
  flex-shrink: 0;
}

See the Pen Untitled by csswebsite (@csswebsite) on CodePen.