Appearance
Kapitel 3: Kernbegriffe von Flexbox-Layout
3.1 Container (Flex-Container)
Definition: Der Flex-Container ist das übergeordnete Element, das display: flex oder display: inline-flex zugewiesen bekommt. Alle direkten Kindelemente werden zu Flex-Elementen.
Beispiel:
html
<!-- .container ist der Flex-Container -->
<div class="container">
<div class="item">Element 1</div>
<div class="item">Element 2</div>
<div class="item">Element 3</div>
</div>css
.container {
display: flex; /* Jetzt ist .container ein Flex-Container */
background-color: #f0f0f0;
padding: 20px;
}
.item {
background-color: #3498db;
color: white;
padding: 20px;
margin: 5px;
}Wichtig:
- Nur die direkten Kinder werden zu Flex-Elementen
- Enkel-Elemente bleiben unberührt
html
<!-- Richtig -->
<div class="container">
<div class="item">Ich bin ein Flex-Element</div> ✅
<div class="item">
<span>Ich bin KEIN Flex-Element (nur normales Kindelement)</span> ❌
</div>
</div>3.2 Projekt / Element (Flex-Element)
Definition: Die Flex-Elemente (auch Flex-Items genannt) sind die direkten Kindelemente eines Flex-Containers. Sie werden automatisch entlang der Hauptachse angeordnet.
Eigenschaften:
- Werden automatisch in eine Zeile oder Spalte angeordnet
- Können mit Flex-Eigenschaften gesteuert werden (
flex-grow,flex-shrink, etc.) - Behálten ihre ursprüngliche Reihenfolge (kann mit
ordergeändert werden)
Beispiel:
css
.container {
display: flex;
}
.item {
/* Flex-Elemente */
flex: 1; /* Teilen sich den Platz gleichmäßig */
}Anzahl der Flex-Elemente:
html
<div class="container">
<div class="item">1</div> <!-- Flex-Element -->
<div class="item">2</div> <!-- Flex-Element -->
<div class="item">3</div> <!-- Flex-Element -->
<!-- Insgesamt 3 Flex-Elemente -->
</div>3.3 Hauptachse (Main Axis)
Definition: Die Hauptachse (Main Axis) ist die Achse, entlang der Flex-Elemente im Container angeordnet werden. Die Richtung wird durch die Eigenschaft flex-direction festgelegt.
Standard (flex-direction: row):
►────── Hauptachse (horizontal) ──────►
┌──────────────────────────────────────┐
│ [Element 1] [Element 2] [Element 3] │
└──────────────────────────────────────┘
▲ ▲ ▲
│ │ │
Hauptachsen- Hauptachsen- Hauptachsen-
start mitte endWenn flex-direction: column:
▼
│
│ [Element 1]
│
│ [Element 2]
│
│ [Element 3]
│
▼
Hauptachse (vertikal)flex-direction Werte:
row(Standard): Horizontal von links nach rechtsrow-reverse: Horizontal von rechts nach linkscolumn: Vertikal von oben nach untencolumn-reverse: Vertikal von unten nach oben
Beispiel:
css
.container {
display: flex;
flex-direction: row; /* Standard: horizontal */
}3.4 Querachse (Cross Axis)
Definition: Die Querachse (Cross Axis) steht senkrecht zur Hauptachse. Wenn die Hauptachse horizontal ist, ist die Querachse vertikal, und umgekehrt.
Standard (flex-direction: row):
►────── Hauptachse (horizontal) ──────►
│
│ [Element 1] [Element 2] [Element 3]
│
▼
Querachse (vertikal)Wenn flex-direction: column:
►────── Querachse (horizontal) ──────►
│
│ [Element 1]
│
│ [Element 2]
│
│ [Element 3]
│
▼
Hauptachse (vertikal)Wichtig für Ausrichtung:
justify-content: Steuert Ausrichtung auf der Hauptachsealign-items: Steuert Ausrichtung auf der Querachse
3.5 Hauptachsen-Start/-Ende, Querachsen-Start/-Ende
Hauptachsen-Start (Main Start) und Hauptachsen-Ende (Main End)
Definition:
- Main Start: Der Punkt, an dem die Flex-Elemente beginnen
- Main End: Der Punkt, an dem die Flex-Elemente enden
Bei flex-direction: row (Standard):
Main Start ►───────────────────────► Main End
┌──────────────────────┐
│ [1] [2] [3] │
└──────────────────────┘Bei flex-direction: row-reverse:
Main End ►───────────────────────► Main Start
┌──────────────────────┐
│ [3] [2] [1] │
└──────────────────────┘Bei flex-direction: column:
Main Start
▼
│
│ [1]
│ [2]
│ [3]
│
▼
Main EndQuerachsen-Start (Cross Start) und Querachsen-Ende (Cross End)
Definition:
- Cross Start: Der Startpunkt der Querachse
- Cross End: Der Endpunkt der Querachse
Bei flex-direction: row (Standard):
Cross Start ➔
│
│ [1] [2] [3]
│
▼
Cross EndWichtig:
align-itemssteuert, wo die Elemente auf der Querachse ausgerichtet werdenalign-contentsteuert, wie Zeilen auf der Querachse verteilt werden (nur beiflex-wrap: wrap)
3.6 Kernbegriffe praktisch überprüfen
Übung 1: Container und Elemente identifizieren
HTML:
html
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="not-flex-item">
<span>Ich bin kein Flex-Element!</span>
</div>
</div>CSS:
css
.flex-container {
display: flex;
border: 3px solid red; /* Container markieren */
padding: 10px;
}
.flex-item {
border: 3px solid blue; /* Flex-Elemente markieren */
padding: 20px;
margin: 5px;
}
.not-flex-item {
border: 3px solid green;
padding: 20px;
margin: 5px;
}Beobachtung:
.flex-containerhat roten Rahmen → Das ist der Container.flex-itemElemente stehen in einer Reihe → Das sind Flex-Elemente.not-flex-itemsteht auch in der Reihe, aber<span>darin ist kein Flex-Element
Übung 2: Hauptachse und Querachse visualisieren
HTML:
html
<div class="container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>CSS:
css
.container {
display: flex;
flex-direction: row; /* Hauptachse: horizontal */
/* Visualisierung */
border: 2px solid red;
padding: 20px;
width: 500px;
height: 300px; /* Höhe für Querachse */
}
.item {
width: 100px;
height: 50px;
background-color: lightblue;
border: 1px solid blue;
/* Text zentrieren */
display: flex;
justify-content: center;
align-items: center;
}Beobachtung:
- Hauptachse: Horizontal (von links nach rechts)
- Querachse: Vertikal (von oben nach unten)
justify-contentwürde horizontal ausrichtenalign-itemswürde vertikal ausrichten
Übung 3: Hauptachse ändern
CSS ändern:
css
.container {
display: flex;
flex-direction: column; /* Jetzt ist Hauptachse vertikal! */
border: 2px solid red;
padding: 20px;
width: 500px;
height: 300px;
}Beobachtung:
- Hauptachse: Vertikal (von oben nach unten)
- Querachse: Horizontal (von links nach rechts)
justify-contentwürde jetzt vertikal ausrichtenalign-itemswürde jetzt horizontal ausrichten
Visuelle Zusammenfassung
Flex-Container (äußerer Rahmen)
┌────────────────────────────────────┐
│ │
│ Hauptachse (Main Axis) │
│ ➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔➔│
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Item1│ │Item2│ │Item3│ │
│ └─────┘ └─────┘ └─────┘ │
│ │
│ Querachse (Cross Axis) │
│ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ │
│ │
└────────────────────────────────────┘Wichtigste Erkenntnis:
Die Hauptachse bestimmt die Richtung, in der Flex-Elemente angeordnet werden. Die Querachse steht immer senkrecht dazu.
Zusammenfassung
In diesem Kapitel hast du gelernt:
- ✅ Was ein Flex-Container ist
- ✅ Was Flex-Elemente sind
- ✅ Was die Hauptachse (Main Axis) ist
- ✅ Was die Querachse (Cross Axis) ist
- ✅ Was Main Start/End und Cross Start/End bedeuten
- ✅ Wie man die Achsen praktisch überprüft
Nächstes Kapitel: In Kapitel 4 lernen wir, wie man Flexbox aktiviert (display: flex) und welche Standardeinstellungen gelten.
Übungsaufgaben
Aufgabe 3.1
Erstelle einen Flex-Container mit 5 Flex-Elementen. Ändere flex-direction auf column und beobachte die Änderung der Hauptachse.
Aufgabe 3.2
Erstelle ein Layout mit einem Container und 3 Elementen. Versuche, die Elemente sowohl auf der Hauptachse als auch auf der Querachse zu zentrieren.
Aufgabe 3.3
Erstelle einen Container mit 6 Elementen. Verwende flex-wrap: wrap, sodass Elemente umbrechen, und beobachte, wie sich die Querachse bei mehreren Zeilen verhält.
