Richtbeil
Strafvollzug im 18. Jahrhundert
Dieses Beispiel zeigt dieselben Inhalte mit Flexbox und CSS Grid nebeneinander. So sehen Sie die Unterschiede und können entscheiden, welches Layout-System für welchen Anwendungsfall besser geeignet ist.
Drei Karten mit Sammlungsobjekten. Flexbox und Grid erzielen hier ein ähnliches Ergebnis, aber Grid bietet präzisere Kontrolle über die Spaltenbreite.
Strafvollzug im 18. Jahrhundert
Ehrenstrafe für öffentliche Vergehen
Instrument der peinlichen Befragung
Strafvollzug im 18. Jahrhundert
Ehrenstrafe für öffentliche Vergehen
Instrument der peinlichen Befragung
.flex-container {
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.flex-container .karte {
flex: 1 1 200px; /* Wachsen, Schrumpfen, min. 200px */
}
.grid-container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1rem;
}
Bei Flexbox bestimmt der Inhalt die Größe der Items (flex-basis). Bei Grid bestimmt das Raster die Größe (grid-template-columns). Grid-Spalten sind immer gleich breit, Flex-Items können je nach Inhalt variieren.
Eine typische Navigationsleiste mit Logo links und Links rechts. Hier ist Flexbox die natürlichere Wahl, weil es um eine eindimensionale Anordnung geht.
.flexbox-nav {
display: flex;
justify-content: space-between;
align-items: center;
}
.grid-nav {
display: grid;
grid-template-columns: auto 1fr;
align-items: center;
}
.grid-nav__links {
justify-self: end;
}
Für Navigationsleisten ist Flexbox die bessere Wahl: Weniger Code, intuitivere
Ausrichtung mit justify-content: space-between, und die Items passen sich
flexibel an den verfügbaren Platz an.
Ein typisches Seitenlayout mit Header, Sidebar, Hauptinhalt und Footer. Hier zeigt CSS Grid seine Stärke, weil es zweidimensionale Platzierung ermöglicht.
Hier wird der Hauptinhalt angezeigt. Die Sidebar ist links, der Inhalt rechts.
Gleiches Layout mit Flexbox. Braucht einen extra Wrapper für Sidebar + Main.
.grid-seitenlayout {
display: grid;
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
}
/* Header und Footer ueber beide Spalten */
.layout-header,
.layout-footer {
grid-column: 1 / -1;
}
.flex-seitenlayout {
display: flex;
flex-direction: column;
}
/* Extra Wrapper fuer Sidebar + Main */
.layout-body {
display: flex;
flex: 1;
}
.layout-sidebar {
width: 200px;
flex-shrink: 0;
}
.layout-main {
flex: 1;
}
Für Seitenlayouts mit Header, Sidebar und Footer ist CSS Grid klar im Vorteil:
Kein zusätzlicher Wrapper nötig, grid-column: 1 / -1 lässt
Header und Footer über alle Spalten gehen, und die Zeilenhöhen werden automatisch
verteilt.
| Anwendungsfall | Empfehlung | Begründung |
|---|---|---|
| Navigationsleiste | Flexbox | Eindimensional, flexibler Platzverbrauch |
| Button-Gruppe | Flexbox | Ausrichtung und Abstände in einer Zeile |
| Zentrierter Inhalt | Flexbox | justify-content + align-items: center |
| Karten-Galerie | Grid | Gleichmäßige Spalten, auto-fill |
| Seitenlayout mit Sidebar | Grid | Zweidimensional, Spanning möglich |
| Dashboard | Grid | Komplexe Zellanordnungen |
| Formular-Felder | Grid | Gleichmäßige Spalten für Labels + Inputs |
In der Praxis kombiniert man Flexbox und Grid: Grid für das Gesamtlayout der Seite, Flexbox für einzelne Komponenten wie Navigation, Buttons oder Karten-Inhalte innerhalb der Grid-Zellen.