Lern Fabrik Lern-Fabrik Lern-Fabrik
Lern fabrik

Was ist Flexbox?

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.

Wichtige Befehle

  • Flex-Container: Das übergeordnete Element, das die Flexbox-Eigenschaft enthält. Wenn du display: flex; auf ein Element anwendest, wird es zum Flex-Container.
  • Flex-Items: Die direkten Kind-Elemente des Flex-Containers. Diese Elemente werden innerhalb des Containers angeordnet.

Wichtige Flexbox-Eigenschaften:

  • 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 passen
  • align-content: flex-start | flex-end | center | space-between | space-around | space-evenly | stretch; - Verteilung des restlichen Platzes auf der Querachse (default ↓↑) zwischen mehreren Zeilen

Beispiel:

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).

Was ist CSS Grid?

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.

Wichtige Begriffe und Konzepte

  • 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.

Wichtige Grid-Eigenschaften

  • 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.
  • Beispiel:
  • 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).

Wann sollte man Flexbox verwenden?

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:

  • Navigationen
  • Zentrierte Layouts (Header, Footer)
  • Einzeilige Layouts, bei denen die Elemente flexibel auf den verfügbaren Platz reagieren sollen

Wann sollte man CSS Grid verwenden?

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:

  • Hauptinhaltsbereiche von Webseiten
  • Layouts mit mehreren Spalten und Zeilen
  • Dashboards oder komplexere Layouts mit vielen Abschnitten
  • Wichtige Hinweise zum Grid-Layout

Kombination von Flexbox und 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:

  • Der Header und Footer verwenden Flexbox, um den Inhalt zu zentrieren.
  • Der Hauptbereich der Seite verwendet CSS Grid, um Sidebar und Hauptinhalt nebeneinander anzuordnen.

Tipps zur Umsetzung

  • Verwende Flexbox für einfache Anordnungen innerhalb eines Containers, wie z.B. das Zentrieren von Elementen oder die Anordnung von Navigationselementen.
  • Verwende CSS Grid für komplexe Layouts mit mehreren Bereichen, wie z.B. die Aufteilung des Hauptinhaltsbereichs in verschiedene Spalten.
  • Testen und Anpassen: Nutze die Entwicklertools deines Browsers, um das Layout auf verschiedenen Bildschirmgrößen zu testen. Du kannst Elemente in den Entwicklertools auch schnell anpassen und sehen, wie sich die Änderungen auf das Layout auswirken.

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!