Viel Code für responsive Layouts wird komplizierter, als er sein sollte, weil Teams Flexbox zwingen, Probleme zu lösen, für die Grid entworfen wurde.
Flexbox ist ausgezeichnet, wenn das Problem eindimensional ist: Elemente in einer Reihe ausrichten, Inhalte in einer Spalte stapeln, einen Block zentrieren, Raum über eine Linie verteilen. Es wird umständlicher, wenn das Problem ein echtes Layoutsystem mit Reihen und Spalten ist, die sich zusammen flüssig anpassen sollten.
Das ist der Punkt, an dem Grid normalerweise besser lesbar ist und zukünftige Designänderungen besser übersteht.
Die häufige Flexbox-Falle
Der Code beginnt oft so:
.cards {
display: flex;
flex-wrap: wrap;
}
.card {
width: 33.33%;
}
@media (max-width: 1024px) {
.card {
width: 50%;
}
}
@media (max-width: 640px) {
.card {
width: 100%;
}
}
Das funktioniert, verwandelt das Layout jedoch in manuelle Breakpoint-Buchhaltung. Wenn Sie eine Sidebar hinzufügen, die minimale Kartengröße erhöhen oder den Abstand ändern, wird das gesamte Setup brüchig.
Warum Grid hilft
Grid ermöglicht es Ihnen, die tatsächliche Layoutregel auszudrücken, anstatt Breiten zu micromanagen:
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
gap: 1rem;
}
Das sagt etwas, das näher an der Absicht ist:
- jede Karte sollte mindestens
18rem groß sein
- Karten können wachsen, um den verfügbaren Raum zu teilen
- so viele Spalten wie sinnvoll anpassen
Das ist eine bessere Abstraktion für ein responsives Kartenlayout.
Wo Flexbox weiterhin gewinnt
Grid ist nicht besser, weil es neuer ist. Es ist besser, wenn das Layout zweidimensional ist.
Flexbox gewinnt weiterhin für:
- Navigationsleisten
- Button-Gruppen
- Ausrichten von Inhalten innerhalb einer Karte
- Layouts für Werkzeugleisten und Header
Die gute Regel lautet:
- Grid für Seiten- und Abschnittsgerüste
- Flexbox für lokale Ausrichtungen innerhalb von Komponenten
Diese Trennung hält das CSS einfacher nachvollziehbar.
SEO und praktischer UX-Winkel
Sauberer Layout-Code ist nicht nur eine CSS-Präferenz. Er trägt in der Regel zur Wartbarkeit bei, reduziert Layoutfehler über verschiedene Ansichtsgrößen hinweg und erleichtert es, Inhalte auf kleineren Bildschirmen stabil und lesbar zu halten. Das hilft indirekt den Verhaltenssignalen der Nutzer, die für Suche und Konversion von Bedeutung sind.
Responsives Design ist nicht nur "sieht gut auf Mobilgeräten aus." Es ist "der Inhalt kommt immer noch klar an, ohne dass das Layout gegen den Inhalt kämpft."
Weitere Lektüre