Flexbox (kurz für Flexible Box Layout) ist ein Layout-Modul von CSS, das dir hilft, Elemente in einer Zeile oder Spalte anzuordnen. Flexbox eignet sich besonders gut, wenn du Inhalte zentrieren, in eine bestimmte Richtung anordnen oder Platz zwischen Elementen aufteilen möchtest. Es ist ideal für einzeilige Layouts, wie z.B. Header, Navigationen oder Fußzeilen. Nutze Flexbox für einfache, einzeilige Layouts, wie Header, Navigation und Footer. Es ist ideal, um Elemente schnell und einfach zu zentrieren und gleichmäßig zu verteilen.
display: flex;
- Aktiviert Flexbox auf einem Container. flex-direction
- Erstellt eine Zeile für das Grid-Layout.flex-direction: row | row-reverse | column | column-reverse
.....Definition der Hauptachse: →, ←, ↓, ↑row
- Die Elemente werden von links nach rechts angeordnet.column
- Die Elemente werden von oben nach unten angeordnet.justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
- Verteilung des restlichen Platzes auf der Hauptachse (default: ←→)center
- Zentriert die Flex-Items.space-between
- Verteilt die Flex-Items gleichmäßig mit Abstand dazwischen.align-items: align-items: stretch | flex-start | flex-end | center | baseline;
- Bestimmt die Ausrichtung der Flex-Items entlang der Querachse vertikal ↓↑.center
- Zentriert die Flex-Items vertikal.flex-start
- Richtet die Flex-Items am Anfang.flex-end
- Richtet die Flex-Items am Ende.flex-wrap: nowrap | wrap | wrap-reverse;
- Zeilenumbruch, falls nicht alle Elemente auf die Hauptachse passenalign-content: flex-start | flex-end | center |
space-between | space-around | space-evenly | stretch;
- Verteilung des restlichen Platzes auf der Querachse (default ↓↑) zwischen mehreren Zeilen
header {
display: flex;
justify-content: center;
align-items: center;
height: 60px;
background-color: #007bff;
}
In diesem Beispiel wird der Header zentriert sowohl horizontal (justify-content: center) als auch vertikal (align-items: center).
CSS Grid ist ein weiteres Layout-Modul in CSS, das dir erlaubt, Inhalte in einem zweidimensionalen Raster (Zeilen und Spalten) anzuordnen. Grid eignet sich besonders gut für komplexere Layouts, bei denen du Bereiche mit verschiedenen Größen und Positionen anordnen möchtest. Verwende CSS Grid für komplexere Layouts mit mehreren Spalten und Zeilen, wie im Hauptbereich der Seite. Grid bietet dir die Möglichkeit, die Anordnung der Elemente flexibel und präzise zu gestalten.
Grid-Container
- Das übergeordnete Element, das die Grid-Eigenschaft enthält. Mit display: grid; wird ein Element zum Grid-Container.Grid-Items
- Die direkten Kind-Elemente des Grid-Containers. Diese Elemente werden innerhalb des Rasters angeordnet.
display: grid;
Aktiviert das Grid-Layout auf einem Container.grid-template-columns und grid-template-rows
– Definieren die Anzahl und Größe der Spalten bzw. Zeilen im Grid.grid-template-columns
: 1fr 3fr; erstellt ein Layout mit zwei Spalten, wobei die erste Spalte 1 Anteil und die zweite Spalte 3 Anteile der verfügbaren Breite einnimmt.grid-gap
– Legt den Abstand zwischen den Grid-Items fest.
.main-content {
display: grid;
grid-template-columns: 1fr 3fr;
grid-gap: 20px;
}
In diesem Beispiel wird der Hauptbereich der Seite (.main-content) in zwei Spalten unterteilt, wobei die erste Spalte 25% und die zweite Spalte 75% der Breite einnimmt (1fr 3fr).
Flexbox ist ideal, wenn du: Eine horizontale oder vertikale Ausrichtung von Elementen innerhalb eines Containers benötigst. Elemente innerhalb einer Zeile gleichmäßig verteilen möchtest (wie z.B. Navigationslinks). Einen Container hast, der sich dynamisch an den Inhalt anpasst. Typische Anwendungsfälle für Flexbox:
CSS Grid ist ideal, wenn du: Ein komplexes Layout mit mehreren Spalten und Zeilen benötigst. Ein Rasterlayout erstellen möchtest, bei dem die Position und Größe der einzelnen Elemente genau festgelegt werden soll. Ein Layout erstellen möchtest, das sich an verschiedene Bildschirmgrößen anpasst und gleichzeitig flexibel bleibt. Typische Anwendungsfälle für CSS Grid:
Oft ist es sinnvoll, Flexbox und CSS Grid gemeinsam zu verwenden, um das Beste aus beiden Layout-Systemen herauszuholen. Zum Beispiel könntest du CSS Grid für das Hauptlayout der Seite verwenden und Flexbox innerhalb eines Grid-Items, um Inhalte zu zentrieren oder nebeneinander anzuordnen.
Beispiel im Layout:
Mit diesem Wissen solltest du in der Lage sein, das Layout der Aufgabe erfolgreich zu erstellen. Flexbox und CSS Grid bieten dir die Flexibilität und Kontrolle, die du benötigst, um moderne, responsive Webseiten zu gestalten. Nutze die gegebenen Beispiele und Hinweise, um das Layout Schritt für Schritt umzusetzen. Viel Erfolg!