IT-Kurs CSS-Grundlagen 032_Flexlayout Flex
Flexlayout Flex
Seit langer Zeit waren die einzigen zuverlässigen und browserkompatibler Werkzeuge zur Erstellung von CSS-Layouts nur float und position. Diese beiden Werkzeuge funktionieren in den meisten Fällen sehr gut, aber in einigen Aspekten haben sie gewisse Einschränkungen, die es schwierig machen, Aufgaben zu erledigen.
Die folgenden einfachen Layoutanforderungen sind schwierig oder unmöglich mit solchen Werkzeugen (float und position) bequem und flexibel zu implementieren:
- Ein Blockelement innerhalb des Elterninhalts vertikal zentrieren.
- Alle untergeordneten Elemente eines Containers die gleiche verfügbare Breite/Höhe einnehmen lassen, unabhängig davon, wie viel Breite/Höhe verfügbar ist.
- Alle Spalten in einem mehrspaltigen Layout die gleiche Höhe annehmen lassen, auch wenn sie unterschiedliche Inhaltsmengen enthalten.

Das CSS Flex-Layout ist ein leistungsstarkes Layout-Tool in CSS, mit dem verschiedene flexible Layouts erstellt werden können. Um das CSS Flex-Layout zu beherrschen, müssen folgende Kenntnisse erworben werden:
- Flex-Container (flex container): Das Flex-Layout besteht aus Flex-Containern und Flex-Items. Der Flex-Container ist der Container, der Flex-Items in das Flex-Layout platziert. Der Flex-Container kann jedes Element sein, wird aber normalerweise als
div-Element verwendet. - Flex-Item (flex item): Flex-Items sind die Elemente, die im Flex-Container platziert werden. Flex-Items können jedes Element sein, werden aber normalerweise als
div-Element verwendet. - Hauptachse (main axis): Die Hauptachse ist die horizontale oder vertikale Richtung der Elemente im Flex-Layout.
- Querachse (cross axis): Die Querachse ist die vertikale oder horizontale Richtung der Elemente im Flex-Layout.
Flex-Container-Eigenschaften
Der Flex-Container verfügt über folgende Eigenschaften zur Steuerung des Flex-Layouts:
display: Legt den Anzeigemodus des Flex-Containers fest. Der Flex-Container muss aufdisplay: flexoderdisplay: inline-flexgesetzt werden, um das Flex-Layout zu verwenden.flex-direction: Legt die Richtung der Hauptachse des Flex-Layouts fest. Werte können sein:flex-startAusrichtung am Hauptachsenstart,flex-endAusrichtung am Hauptachsenende,rowHauptachse horizontal angeordnet,row-reverseHauptachse umgekehrt horizontal angeordnet,columnHauptachse vertikal angeordnet,column-reverseHauptachse umgekehrt vertikal angeordnet.flex-wrap: Steuert, ob die Items im Flex-Container umbrochen werden.nowrapStandardwert, kein Umbruch,wrapUmbruch,wrap-reverseumgekehrter Umbruch.flex-flow: Kurzform fürflex-directionundflex-wrap, zwei Werte, die jeweilsflex-directionundflex-wrapentsprechen.justify-content: Legt die Ausrichtung der Flex-Items auf der Hauptachse im Flex-Container fest. Werte können sein:flex-startAusrichtung am Hauptachsenstart,flex-endAusrichtung am Hauptachsenende,centerZentrierung auf der Hauptachse,space-betweengleichmäßige Ausrichtung auf der Hauptachse (Container-Anfang und -Ende ausgerichtet),space-aroundgleichmäßige Ausrichtung auf der Hauptachse (gleiche Abstände zwischen Items) oderspace-evenlygleichmäßige Ausrichtung auf der Hauptachse (einschließlich gleicher Abstände an beiden Seiten).align-items: Legt die Ausrichtung der Flex-Items auf der Querachse im Flex-Container fest. Werte können sein:flex-startAusrichtung am Querachsenstart,flex-endAusrichtung am Querachsenende,centerZentrierung auf der Querachse,stretchStandardwert oderbaselineAusrichtung an der Textgrundlinie der ersten Zeile. Wirkt nur auf die untergeordneten Items des Flex-Containers.align-content: Wiealign-itemsist dies eine Eigenschaft zur Steuerung der Ausrichtung untergeordneter Items auf der Querachse, die nur wirksam wird, wenn der Flex-Container mehrere Achsen (mehrere Zeilen oder Spalten) hat.
Flex-Item-Eigenschaften
Flex-Items haben folgende Eigenschaften zur Steuerung des Layouts von Flex-Items im Flex-Layout:
flex-grow: Legt das Dehnungsverhältnis des Flex-Items auf der Hauptachse fest. Der Wert kann eine Fließkommazahl zwischen 0 und 1 sein.flex-shrink: Legt das Schrumpfverhältnis des Flex-Items auf der Hauptachse fest. Der Wert kann eine Fließkommazahl zwischen 0 und 1 sein.flex-basis: Legt die Standardbreite oder -höhe des Flex-Items auf der Hauptachse fest. Der Wert kann ein Längenwert, ein Prozentwert oderautosein.order: Legt die Reihenfolge des Flex-Items auf der Hauptachse fest. Der Wert kann eine ganze Zahl zwischen 1 und 65535 sein.
Beispiel:
/* Flex-Container-Stil */.flex-container { display: flex; flex-direction: row; /* Hauptachsenrichtung horizontal */ justify-content: space-around; /* Ausrichtung auf der Hauptachse */ align-items: center; /* Ausrichtung auf der Querachse */ height: 200px; /* Container-Höhe festlegen */ border: 2px solid #333; /* Für bessere Visualisierung Rahmen hinzufügen */}/* Flex-Item-Stil */.flex-item { flex: 1; /* Hauptachsenraum gleichmäßig aufteilen */ text-align: center; padding: 20px; background-color: #f2f2f2;}<!-- Flex-Container --><div class="flex-container"> <!-- Flex-Item 1 --> <div class="flex-item">Item 1</div> <!-- Flex-Item 2 --> <div class="flex-item">Item 2</div> <!-- Flex-Item 3 --> <div class="flex-item">Item 3</div></div>Effekt:
