
Grid
Das Schachbrett der Layout-Magie
CSS Grid ist wie ein Schachbrett, auf dem du die Kontrolle über jedes einzelne Element hast – als wärst du der Großmeister der Layout-Welt. Flexbox ist gut, um Elemente in einer Linie aufzustellen, aber Grid? Grid gibt dir die Macht über zwei Dimensionen. Du kannst Elemente in Zeilen und Spalten herumschieben, als würdest du ein Spielbrett voller Figuren lenken, die genau dort landen, wo du es willst.
Perfekt für die Kontrollfreaks unter den Webdesignern! Hier hat alles seinen exakten Platz, nichts steht krumm, nichts rutscht aus der Reihe. Ob auf winzigen Bildschirmen oder gigantischen Monitoren, Grid sorgt dafür, dass dein Layout so ordentlich aussieht, als hätte es ein perfektionistischer Architekt mit magischen Fähigkeiten entworfen.
Das Schachbrett der Webentwicklung
Reihe für Reihe, Spalte für Spalte – endlich Ordnung ohne Kopfschmerzen!
Grid-Container und Grid-Items
Die Meister der flexiblen Anordnung
Bevor du mit Grid zauberst, musst du den richtigen Rahmen schaffen. Der Grid-Container ist wie das Spielfeld deines Layouts, und die Grid-Items sind die Figuren, die du auf diesem Spielfeld bewegst. Erkläre dem Container, dass er ab jetzt ein Grid ist – und schon stehen dir die magischen Kräfte zur Verfügung! Allerdings ordnen sich die Elemente hier noch nicht automatisch an, du musst erst das Schachbrett verstehen und bauen.
.container {
display: grid;
}
Gemeinsame CSS-Befehle
für Flexbox und Grid
gap: Definiert den Abstand zwischen den Elementen
align-items: Richtet die Kinder-Elemente entlang der vertikalen Achse (Cross-Axis) im aus.
justify-content: Bestimmt die horizontale Ausrichtung (Main-Axis) der Kinder-Elemente im Container.
align-self: Richtet ein einzelnes Kind-Element unabhängig von den anderen aus.
order: Ändert die visuelle Reihenfolge von Kind-Elementen.
place-items: Kombiniert align-items und justify-items in einem einzigen Befehl. Beispiel: place-items: center;
place-content: Kombiniert align-content und justify-content.
Beispiel: place-content: center space-between;
auto (als Wert für Positionierung)
Kann sowohl bei Grid als auch bei Flex verwendet werden, um Elemente automatisch nach Layout-Regeln auszurichten.

Die Magie der Fraktionen
Das Schachbrett bauen
Im CSS Grid sind Fraktionen (fr) das Geheimnis hinter der flexiblen Aufteilung deines Layouts. Stell dir vor, du verteilst den Platz wie ein magischer Kuchen – die Fraktionen bestimmen, wie groß jedes Stück wird. Mit fr kannst du ganz leicht festlegen, wie viel Platz jede Spalte oder Reihe erhält, ohne dich um feste Maße kümmern zu müssen. Mit repeat(3, 1fr); erstellst du drei gleich große Spalten, wobei jede Spalte einen gleichmäßigen Anteil (1fr) des verfügbaren Platzes im Grid-Container einnimmt. Es ist die perfekte Mischung aus Ordnung und Flexibilität.
.container {
display: grid;
grid-template-columns: 1fr 2fr 3fr;
}

Items genau platzieren
Kein Schachbrett ohne Regeln
Im Grid gibt es unsichtbare Linien, die alles zusammenhalten. Diese Grid-Linien trennen Spalten und Reihen, und du zählst sie von links nach rechts und oben nach unten, immer beginnend bei 1. Wenn du ein Element über mehrere Spalten oder Reihen erstrecken möchtest, kannst du diese Linien wie Markierungen auf einer Schatzkarte nutzen. Indem du die Liniennummern angibst, steuerst du genau, wo jedes Element landet. So schaffst du präzise Layouts mit viel Spielraum für Kreativität!
.item {
grid-column: 1 / 4;
grid-row: 2 / 3;
}

grid-auto-flow
Die unsichtbare Magie
In der Welt des CSS Grid musst du nicht immer jedes einzelne Element exakt platzieren. Manch-mal möchtest du einfach, dass die Elemente automatisch ihren Platz im Raster finden. Genau dafür gibt es grid-auto-flow. Dieser Befehl bestimmt, wie die Grid-Items automatisch in das Raster eingefügt werden, wenn du sie nicht manuell positionierst.
Standardmäßig werden die Items von links nach rechts und dann von oben nach unten gefüllt, das nennt sich Zeilenfluss (row). Mit grid-auto-flow kannst du dieses Verhalten ändern und die Items zum Beispiel zuerst in die Spalten fließen lassen.
.container {
display: grid;
grid-template-columns: repeat(3, 2fr);
grid-auto-flow: row;
}
Die möglichen Werte sind:
row: Die Items werden Zeile für Zeile gefüllt (Standard).
column: Die Items werden Spalte für Spalte gefüllt.
dense: Lücken im Raster werden gefüllt, indem kleinere Items in freie Plätze springen, um den Raum effizient zu nutzen.
auto-fit
Ein flexibles Grid für jede Gelegenheit
Mit dieser Anweisung zauberst du ein Grid, das sich intelligent an den verfügbaren Platz anpasst. auto-fit stellt sicher, dass so viele Spalten wie möglich entstehen, ohne dass sie sich gegenseitig in die Quere kommen.
.container {
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
Jede Spalte ist mindestens 200 Pixel breit, und dank minmax(200px, 1fr) wächst sie, wenn mehr Platz da ist, gleichmäßig auf bis zu 1fr, also einen Teil des freien Platzes. Das Ergebnis: Ein flexibles Layout, das automatisch den Raum effizient füllt und dabei stets schön geordnet bleibt – ganz ohne zusätzlichen Aufwand!

grid-template-areas
Der Zauber der benannten Bereiche
Stell dir vor, du baust ein Haus und jeder Raum hat einen Namen: „Küche“, „Wohnzimmer“, „Schlafzimmer“. Mit grid-template-areas machst du genau das für dein Grid: Du gibst jedem Abschnitt einen Namen, wie z.B. „header“, „sidebar“, „content“ und „footer“ – und ordnest diese Bereiche logisch im Raster an. Das Ergebnis ist ein klares, benutzerfreundliches Layout, das sich leicht pflegen und anpassen lässt.
Mit diesem Befehl kannst du sowohl einfache als auch komplexe Layouts erstellen, ohne dich in detaillierten Zahlen und Spaltenbreiten zu verlieren. Besonders praktisch ist es, wenn du über mehrere Spalten und Zeilen hinweg Elemente verteilen möchtest, denn die Namen der Bereiche machen das Layout sofort verständlich.
Wie funktioniert’s?
- Der header-Bereich breitet sich über alle drei Spalten der ersten Zeile aus, wie ein Banner am Seitenanfang.
- Die sidebar bleibt in der linken Spalte und läuft über zwei Zeilen.
- Der content nimmt die mittleren beiden Spalten ein und erstreckt sich ebenfalls über zwei Zeilen und nimmt in der dritten Zeile zusätzlich in der zweiten Spalte Platz ein
- Der ad-Bereich erscheint in der dritten Spalte, jedoch nur in der dritten Zeile.
- Der footer breitet sich zum Schluss wie ein Fundament über die gesamte Breite der letzten Zeile aus.
Die benannten Bereiche helfen dir dabei, dein Layout sowohl lesbar als auch flexibel zu halten.
Genau das Richtige für ein effizientes und dennoch stilvolles Design!
.container {
display: grid;
grid-template-areas:
"header header header"
"sidebar content content"
"sidebar content ad"
"footer footer footer";
}
.header {
grid-area: header;
}
.sidebar {
grid-area: sidebar;
}
.content {
grid-area: content;
}
.ad {
grid-area: ad;
}
.footer {
grid-area: footer;
}