Webdesign lernen CSS · Layout

CSS Grid lernen für Anfänger.

CSS Grid einfach erklärt: Du lernst Zeilen, Spalten, fr, gap und benannte Bereiche – jede Eigenschaft mit Live-Beispiel und Code zum Kopieren.

CSS Grid lernen für Anfänger – Beispiele

CSS Grid einfach erklärt mit Beispielen

Mit CSS Grid kannst du moderne, flexible und responsive Layouts erstellen. In diesem Beitrag lernst du die Grundlagen von CSS Grid für Anfänger und siehst anhand praktischer Beispiele, wie du Zeilen, Spalten und komplette Webseiten-Strukturen sauber aufbaust. Wenn du zusätzlich flexible Anordnungen innerhalb von Reihen brauchst, schau dir auch mein CSS Flexbox Tutorial an.

Grundstruktur von CSS Grid

Ein Grid besteht immer aus einem Grid-Container und seinen direkten Kind-Elementen, den Grid-Items:

html
<div class="beispiel">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
</div>
Item 1
Item 2
Item 3
Live-Beispiel: display: grid
css
<style>
.beispiel {
  display: grid;
}
</style>

Die wichtigsten CSS-Grid-Eigenschaften

EigenschaftMögliche WerteBeschreibung
displaygrid, inline-gridAktiviert CSS Grid im Container
grid-template-columns100px, 1fr, repeat(3, 1fr)Legt die Spalten des Grids fest
grid-template-rows100px, auto, repeat(2, 1fr)Legt die Zeilen des Grids fest
gapPixel, z.B. 10px, 20pxBestimmt den Abstand zwischen Grid-Items
justify-itemsstart, center, end, stretchRichtet Grid-Items horizontal aus
align-itemsstart, center, end, stretchRichtet Grid-Items vertikal aus
justify-contentstart, center, space-between, space-around, space-evenlyRichtet das gesamte Grid auf der Hauptachse aus
grid-column1 / 3, span 2Ein Element über mehrere Spalten platzieren
grid-row1 / 3, span 2Ein Element über mehrere Zeilen platzieren
grid-template-areasTextbasierte BereichsnamenErmöglicht ein benanntes Layout-System

CSS-Grid-Eigenschaften mit Beispielen

grid-template-columns – Spalten festlegen

Mit grid-template-columns legst du fest, wie viele Spalten dein Grid hat und wie breit sie sind. Das ist eine der wichtigsten Eigenschaften im CSS Grid, weil du damit die Grundstruktur des Layouts definierst.

Item 1
Item 2
Item 3
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
</style>

Beispiel: Die Items werden in drei gleich große Spalten aufgeteilt.

grid-template-rows – Zeilenhöhe bestimmen

Mit grid-template-rows bestimmst du die Zeilenhöhe im Grid. So kannst du einzelne Zeilen gezielt größer oder kleiner machen und dein Layout präzise steuern.

Item 1
Item 2
Item 3
css
<style>
.beispiel {
  display: grid;
  grid-template-rows: 120px 200px 80px;
}
</style>

Beispiel: Die einzelnen Zeilen werden mit unterschiedlichen Höhen angeordnet.

gap – Abstand zwischen den Items

gap sorgt für einen gleichmäßigen Abstand zwischen den Grid-Items. Das ist besonders praktisch, weil du nicht jedes Element einzeln mit Margins versehen musst.

Item 1
Item 2
Item 3
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
</style>

Beispiel: Zwischen den Items entsteht ein Abstand von 20 Pixeln.

justify-items – Inhalte horizontal ausrichten

Mit justify-items richtest du die Inhalte innerhalb der Grid-Zellen horizontal aus. Das ist hilfreich, wenn du Text oder Elemente innerhalb jeder Zelle exakt platzieren möchtest.

Item 1
Item 2
Item 3
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  justify-items: center;
}
</style>

Beispiel: Die Items werden innerhalb ihrer Zellen mittig ausgerichtet.

grid-column – über mehrere Spalten

Mit grid-column kannst du ein Element über mehrere Spalten strecken. Das ist ideal für Header, breite Bereiche oder hervorgehobene Inhalte im Grid-Layout.

Item 1
Item 2
Item 3
Item 4
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.beispiel div:first-child {
  grid-column: 1 / 3;
}
</style>

Beispiel: Das erste Item nimmt beide Spalten ein und wird dadurch breiter dargestellt.

grid-row – über mehrere Zeilen

Mit grid-row kannst du ein Element über mehrere Zeilen platzieren. Dadurch lassen sich größere Inhalte oder besondere Bereiche im Layout hervorheben.

Item 1
Item 2
Item 3
Item 4
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
}
.beispiel div:first-child {
  grid-row: 1 / 3;
}
</style>

Beispiel: Das erste Item erstreckt sich über zwei Zeilen.

Was bedeutet fr in CSS Grid?

fr bedeutet fraction = Anteil am verfügbaren Platz im Grid.

Einfach erklärt: Wenn du schreibst:

css
grid-template-columns: 1fr 2fr;

dann heißt das:

  • die erste Spalte bekommt 1 Anteil
  • die zweite Spalte bekommt 2 Anteile

Zusammen sind das 3 Anteile. Der verfügbare Platz wird also so aufgeteilt: 1fr = 1/3 und 2fr = 2/3. Die zweite Spalte ist doppelt so breit wie die erste.

1fr
2fr

Wichtiger Punkt: fr verteilt nur den freien Platz im Grid. Es ist keine feste Pixelangabe. Mit grid-template-columns: 1fr 1fr 1fr; sind alle drei Spalten gleich breit.

Kurz gesagt: fr = flexibler Anteil des verfügbaren Platzes im CSS Grid.

grid-template-areas: Layout mit benannten Bereichen

Mit grid-template-areas kannst du dein Layout mit benannten Bereichen strukturieren. Das macht komplexere Seiten übersichtlicher und leichter lesbar.

Header
Sidebar
Main
Footer
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: 1fr 2fr;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  gap: 10px;
}
.header {
  grid-area: header;
}
.sidebar {
  grid-area: sidebar;
}
.main {
  grid-area: main;
}
.footer {
  grid-area: footer;
}
</style>

Beispiel: Das Layout wird mit klar benannten Bereichen aufgebaut. Der Header und Footer nehmen die ganze Breite ein, Sidebar und Main liegen nebeneinander in der Mitte.

CSS Grid im Praxisbeispiel

Karte 1
Karte 2
Karte 3
Karte 4
css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
</style>

Beispiel: Vier Karten werden in einem sauberen Grid-Layout mit zwei Spalten dargestellt.

CSS Grid responsive machen

CSS Grid lässt sich sehr gut responsive einsetzen. Mit einer Media Query wechselst du auf kleinen Bildschirmen einfach auf eine Spalte:

css
<style>
.beispiel {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

@media (max-width: 768px) {
  .beispiel {
    grid-template-columns: 1fr;
  }
}
</style>

Auf großen Bildschirmen werden die Items in drei Spalten angezeigt. Auf kleineren Geräten wechseln sie automatisch in eine Spalte.

Noch eleganter geht es ganz ohne Media Query mit repeat(auto-fit, minmax()): Das Grid legt so viele Spalten an, wie mit mindestens 200 Pixeln Breite hineinpassen.

css
.beispiel {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}
Karte 1
Karte 2
Karte 3
Karte 4
Fenster verkleinern – die Spalten brechen automatisch um

Tipps & Tricks

  • Nutze display: grid; für komplexe Layouts mit Zeilen und Spalten.
  • Verwende gap statt einzelner Margins für saubere Abstände.
  • Teste grid-template-columns mit repeat() und fr-Einheiten.
  • CSS Grid eignet sich besonders gut für Seitenlayouts, Karten und Dashboard-Bereiche.

Weiterlernen

Für einzelne Reihen und Navigationen ist das CSS Flexbox Tutorial die perfekte Ergänzung. Wie Grid und Flexbox zusammen auf allen Geräten funktionieren, zeige ich unter Responsive Webdesign erstellen. Für Bewegung im Layout sorgen Keyframe-Animationen mit CSS, und wer Daten in Zeilen und Spalten darstellen will, findet im HTML-Tabellen Tutorial den semantisch richtigen Weg.

Du brauchst ein modernes Layout, aber keine Zeit zum Coden? Als Webdesigner setze ich responsive Webseiten mit CSS Grid und Flexbox für dich um.

Häufige Fragen zu CSS Grid

Die wichtigsten Antworten rund um CSS Grid für Anfänger

Was ist CSS Grid?

CSS Grid ist ein modernes Layout-Modell, mit dem du Webseiten in Zeilen und Spalten aufbauen kannst. Im Gegensatz zu Flexbox, das eher für eine Richtung optimiert ist, arbeitet CSS Grid zweidimensional. Das bedeutet, dass du Elemente gleichzeitig horizontal und vertikal anordnen kannst. Besonders für größere Layouts, Kartenbereiche oder komplette Seitenstrukturen ist CSS Grid sehr praktisch.

Wann sollte man CSS Grid verwenden?

CSS Grid eignet sich besonders dann, wenn du ein Layout mit mehreren Bereichen bauen möchtest, zum Beispiel mit Header, Sidebar, Main-Bereich und Footer. Auch für Kartenlayouts, Produktübersichten oder Dashboard-Strukturen ist Grid eine sehr gute Wahl. Wenn du mehr Kontrolle über Zeilen und Spalten brauchst, ist CSS Grid oft die beste Lösung.

Was macht display: grid;?

Mit display: grid; wird ein Element zu einem Grid-Container. Alle direkten Kind-Elemente werden dadurch automatisch zu Grid-Items und lassen sich mit Grid-Eigenschaften steuern. Ohne display: grid; funktionieren die meisten Grid-Eigenschaften nicht. Es ist also die Grundlage für jedes CSS-Grid-Layout.

Was bedeutet fr in CSS Grid?

fr steht für fraction und bedeutet Anteil am verfügbaren Platz. Wenn du zum Beispiel grid-template-columns: 1fr 2fr; verwendest, bekommt die erste Spalte einen Anteil und die zweite Spalte zwei Anteile. Dadurch ist die zweite Spalte doppelt so breit wie die erste. fr ist also eine flexible Maßeinheit für Grid-Spalten und -Zeilen.

Wofür wird grid-template-columns benutzt?

grid-template-columns legt fest, wie viele Spalten dein Grid hat und wie breit diese Spalten sind. Du kannst feste Werte wie 100px verwenden oder flexible Einheiten wie 1fr. Besonders oft wird repeat() genutzt, um mehrere gleich breite Spalten schnell zu erzeugen.

Wofür ist gap gut?

Mit gap bestimmst du den Abstand zwischen den Grid-Items. Das ist eine saubere und moderne Methode, weil du nicht jedes Element einzeln mit Margins versehen musst. Besonders bei Kartenlayouts oder Rasterstrukturen sorgt gap für ein übersichtliches und gleichmäßiges Layout.

Was macht grid-column?

grid-column wird verwendet, wenn ein Element über mehrere Spalten gehen soll. Du kannst damit zum Beispiel ein breites Header-Element oder eine große Karte im Layout platzieren. Mit Werten wie 1 / 3 oder span 2 steuerst du genau, wie weit sich ein Element im Grid ausdehnen soll.

Was ist der Unterschied zwischen CSS Grid und Flexbox?

Flexbox eignet sich vor allem für eindimensionale Layouts, also entweder in einer Zeile oder in einer Spalte. CSS Grid dagegen arbeitet zweidimensional und kann Zeilen und Spalten gleichzeitig steuern. In der Praxis nutzt man Flexbox oft für kleinere Komponenten und CSS Grid für größere Seitenlayouts. Beide Systeme ergänzen sich sehr gut.

Ist CSS Grid responsive?

Ja, CSS Grid lässt sich sehr gut responsive einsetzen. Mit flexiblen Einheiten wie fr, mit repeat() und mit Media Queries kannst du Layouts bauen, die sich an verschiedene Bildschirmgrößen anpassen. Ein Beispiel mit Code findest du oben im Abschnitt „CSS Grid responsive machen“.

Passt dazu Weitere Tutorials

Weiter lernen.

Keine Zeit, es selbst umzusetzen? Ich baue Ihre Webseite schnell und sauber.

Jetzt kontaktieren