𝗖𝗦𝗦 𝗚𝗿𝗶𝗱 𝘃𝘀 𝗙𝗹𝗲𝘅𝗯𝗼𝘅

Hör auf, gegen deine CSS-Layouts zu kämpfen.

Früher habe ich Stunden damit verbracht, kaputte Layouts mit Flexbox zu reparieren. Ich habe versucht, Elemente in einer Zeile anzuordnen, aber das letzte Element hat sich über den ganzen Bildschirm gestreckt. Es sah falsch aus. Ich habe es mit Margins und extra Hacks versucht, aber nichts hat funktioniert.

Dann habe ich meine Denkweise auf CSS Grid umgestellt.

Der Unterschied ist einfach:

  • Flexbox ist für eindimensionale Layouts gedacht. Nutze es für eine einzelne Zeile oder eine einzelne Spalte.
  • CSS Grid ist für zweidimensionale Layouts gedacht. Nutze es, wenn du gleichzeitig sowohl Zeilen als auch Spalten steuern musst.

Betrachte Flexbox als ein Werkzeug für kleine Aufgaben. Betrachte Grid als ein Werkzeug für deine gesamte Seitenstruktur.

Die Flexbox-Falle: Wenn du Flexbox für eine Galerie verwendest, passen die Elemente auf jeder Bildschirmgröße vielleicht nicht perfekt zusammen. Oft landest du bei „verwaisten“ Elementen, die deinen Design-Rhythmus stören.

Die Grid-Lösung: Mit Grid kannst du responsive Galerien mit nur einer Zeile Code erstellen.

Nutze dies: display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

Dies weist den Browser an, so viele 250px-Spalten wie möglich unterzubringen. Der Browser übernimmt die Berechnungen für dich. Kein Raten mehr. Keine kaputten Zeilen mehr.

Das Dashboard-Beispiel: Ein Dashboard mit einer Sidebar, Hauptinhalt und einem Footer zu bauen, ist mit Flexbox schwierig. Oft benötigt man verschachtelte Container und unordentlichen Code, um den Footer über die volle Breite zu ziehen.

Mit Grid definierst du die Tracks einmal: grid-template-columns: 250px 1fr; grid-template-rows: auto 1fr auto;

Mit einem einzigen Befehl kannst du dem Footer sagen, dass er von der ersten bis zur letzten Spalte reichen soll. Dein Code wird sauber und leicht lesbar.

Mein Rat:

• Nutze Flexbox für einfache Ausrichtungen in Headern oder bei Buttons. • Nutze Grid für Hauptseiten-Layouts und komplexe Galerien. • Hör auf, Container zu verschachteln, nur um ein Layout-Problem zu lösen. • Nutze die fr-Einheit, um Platz einfach zu verteilen.

Probiere das heute aus. Nimm eine alte Komponente, die du mit Flexbox gebaut hast. Schreibe sie mit CSS Grid neu. Du wirst sehen, wie dein Code kürzer und deine Layouts robuster werden.

Quelle: https://dev.to/timevolt/css-grid-vs-flexbox-the-battle-of-layout-titans-or-my-jedi-training-with-boxes-561j