📚
Lerndokumentationen
Web
Web
  • Willkommen
  • HTML
    • Was ist HTML?
    • Elemente
    • Attribute
    • Boilerplate
  • Textelemente
  • Links
  • Dokumentenstruktur
  • Medien
  • Tabellen
  • Formulare
  • CSS
    • Was ist CSS?
    • Syntax
  • Einheiten
  • Selektoren
  • Boxmodell
  • Hintergründe und Rahmen
  • Overflow
  • Bilder
  • Formulare
  • Textelemente
  • Layout
    • Flexbox
    • Grid
  • Responsive Design
  • JavaScript
    • Was ist JavaScript?
    • Einbindung in HTML
    • Grundlagen
      • Variablen und Werte
      • Datentypen
      • Operatoren und Ausdrücke
      • Kontrollstrukturen
      • Schleifen
    • Funktionen
      • Funktionsdeklarationen vs. Funktionsausdrücke
      • Arrow Functions
      • Standardparameter und Rest-Parameter
      • First-Class und Higher-Order-Funktionen
      • Closures
      • IIFE (Immediately Invoked Function Expressions)
    • Arrays
      • Erstellen und Modifizieren
      • Iteration über Arrays
      • Sortieren
      • Nützliche Methoden
    • Objekte und Datenstrukturen
      • Erstellen und Manipulieren
      • Destructuring
      • Sets und Maps
    • Strings
      • Template Literals
      • Methoden
    • Moderne JavaScript-Features
      • Optionale Verkettung
      • Nullish Coalescing Operator
      • Spread und Rest Operator
      • Kurzschlussausdrücke
    • Scope und Kontext
      • this Keyword
      • Call, Apply und Bind
      • Hoisting und Temporal Dead Zone (TDZ)
    • Objektorientierte Programmierung
      • Prototypes
      • Constructor Functions
      • ES6 Classes
      • Die create()-Methode
    • Asynchronous JavaScript
      • AJAX
      • Promises
    • Zahlen, Daten, Internationalisierung und Timer
      • Mathematische Operationen
      • Datum und Zeit
      • Internationalisierung
      • Timer
    • Modules
    • JavaScript im Browser (DOM und Events)
      • Das DOM
      • Elemente auswählen, erstellen und manipulieren
      • Styles, Attribute und Klassen
      • Events und Event Listener
      • Event Propagation
        • Event Delegation
      • DOM Traversing
    • JavaScript Engine und Performance
      • Execution Context und Call Stack
  • TypeScript
    • Was ist TypeScript?
  • Compiler und Runtimes
  • Konfiguration
  • Types
    • Primitive Typen und Typableitung
    • Arrays und Tupel
    • Objekte
    • Top- und Bottom-Types
    • Enums
    • Utility Types
      • Records
  • Typenkombination
    • Union Types
    • Discriminated Unions
    • Intersections
  • Funktionen
  • Klassen
    • Grundlagen
    • Feldinitialisierer
    • Schreibgeschützte Felder
    • Implementieren
    • Private und Geschützte Member
    • Getter und Setter
    • Statische Member
    • Abstrakte Klassen und Member
  • Modules
    • Importieren und Exportieren
    • Ambient Types
    • Namespaces
    • Globals
  • React
    • Was ist React?
    • JSX
    • Komponenten
      • Root-Komponente
      • Styling
      • Listen
      • Conditional Rendering
      • Fragments
    • Props
      • Destructuring
      • Children
    • Interaktivität
      • Event Handling
      • State
      • Formulare
    • State Management
      • State anheben
      • Derived State
    • Komposition und Reusability
      • Komponentenstrukturierung
      • Prop Drilling
      • Komposition
Bereitgestellt von GitBook
Auf dieser Seite
  • Das Flex-Modell
  • Spalten oder Zeilen
  • Umbrüche
  • Horizontale und Vertikale Ausrichtung
  • Abstände
  • Flex-Items anordnen
  • Flexible Grössenanpassung
  1. Layout

Flexbox

VorherigeLayoutNächsteGrid

Zuletzt aktualisiert vor 25 Tagen

Flexbox ist eine eindimensionale Layoutmethode zum Anordnen von Elementen in Zeilen oder Spalten. Elemente flexen (dehnen sich aus), um zusätzlichen Raum zu füllen oder ziehen sich zusammen, um in kleinere Räume zu passen.


Zunächst müssen wir auswählen, welche Elemente als flexible Boxen angelegt werden sollen. Dazu setzen wir einen speziellen Wert von display auf das Elternelement der Elemente, die du beeinflussen möchtest.

.container {
  display: flex;
}

Das Flex-Modell

Wenn Elemente als Flex-Items angelegt werden, sind sie entlang zwei Achsen angeordnet:

Hauptachse

Die Hauptachse ist die Achse, die in der Richtung verläuft, in der die Flex-Items angeordnet sind (zum Beispiel eine Zeile über die Seite, oder eine Spalte die Seite hinunter.)

Querachse

Die Querachse ist die Achse, die senkrecht zur Richtung verläuft, in der die Flex-Items angeordnet sind.

Flex-Container

Das Elternelement, das display: flex auf sich gesetzt hat wird als Flex-Container bezeichnet.

Flex-Items

Die Elemente, die als flexible Boxen innerhalb des Flex-Containers angelegt sind, werden als Flex-Items bezeichnet

Spalten oder Zeilen

Flexbox bietet eine Eigenschaft namens flex-direction, die festlegt, in welche Richtung die Hauptachse verläuft. Standardmässig ist dies auf row gesetzt, was bewirkt, dass sie in einer Zeile angeordnet sind.

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

Umbrüche

Standardmässig versuchen die Flex-Elemente, alle in eine Zeile zu passen. Mit dieser Eigenschaft kannst du das ändern und die Elemente nach Bedarf umbrechen lassen.

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

Horizontale und Vertikale Ausrichtung

justify-content definiert die Ausrichtung entlang der Hauptachse.

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

align-items definiert die Ausrichtung entlang der Querachse.

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

align-content richtet die Zeilen eines Flex-Containers aus, wenn in der Querachse zusätzlicher Platz vorhanden ist, ähnlich wie justify-content einzelne Elemente innerhalb der Hauptachse ausrichtet.

Diese Eigenschaft wird nur bei mehrzeiligen flexiblen Containern wirksam, bei denen flex-wrap entweder auf wrap oder wrap-reverse eingestellt ist. Ein einzeiliger flexibler Container (d. h. ein Container, bei dem flex-wrap auf den Standardwert no-wrap eingestellt ist) spiegelt align-content nicht wider.

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

Abstände

Die Eigenschaft gap steuert ausdrücklich den Abstand zwischen Flex-Elementen. Dieser Abstand wird nur zwischen den Elementen und nicht an den Aussenkanten angewendet.

.container {
  display: flex;
  ...
  gap: 1rem;
  
  row-gap: 1rem;
  column-gap: 2rem;
}

Flex-Items anordnen

Standardmässig werden die Flex-Elemente in der Reihenfolge der Quelle angeordnet. Die Eigenschaft order steuert jedoch die Reihenfolge, in der sie im Flex-Container erscheinen.

.item {
  order: 5;
}

Flexible Grössenanpassung

flex-grow definiert die Fähigkeit eines Flex-Items, bei Bedarf zu wachsen. Er akzeptiert einen einheitenlosen Wert, der als Proportion dient. Er gibt an, wie viel des verfügbaren Platzes innerhalb des Flex-Containers das Element einnehmen soll.

.item {
  flex-grow: 2;
}

Die flex-shrink-Eigenschaft legt den Verkleinerungsfaktor eines Flex-Elements fest.

.item {
  flex-shrink: 2;
}

Die flex-basis-Eigenschaft legt die anfängliche Hauptgrösse eines Flex-Elements fest.

.item {
  flex-basis: 20%;
}

flex ist die Kurzform für flex-grow, flex-shrink und flex-basis. Der zweite und dritte Parameter (flex-shrink und flex-basis) sind optional. Der Standardwert ist 0 1 auto, aber wenn du einen einzelnen Zahlenwert angibst, z. B. flex: 5;, ändert sich die flex-basis auf 0%, d. h. es ist wie die Einstellung flex-grow: 5; flex-shrink: 1; flex-basis: 0%;.

.item {
  flex: 2;
}
Das Flex-Modell
Spalten oder Zeilen
Umbrüche
Ausrichtung entlang der Hauptachse
Ausrichtung entlang der Querachse
Ausrichtung entlang der Querachse bei zu viel Platz
Reihenfolge der Flex-Items
flex-grow
flex-shrink
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing
Drawing