Grid Ausrichtung

Zuletzt aktualisiert am 15. Februar 2026

Grid bietet ein umfassendes Ausrichtungssystem auf drei Ebenen: Items innerhalb ihrer Zellen, Tracks innerhalb des Containers und einzelne Items unabhängig von den anderen. In diesem Artikel lernst du alle Ausrichtungseigenschaften kennen: justify-items und align-items für Zellen, justify-content und align-content für Tracks, justify-self und align-self für Einzelfälle, sowie gap für Abstände.

Syntax
justify-items: start | center | end | stretch
Initialwert
(variiert je Eigenschaft)
Vererbt
Nein
Animierbar
Nein

Grundlagen

Die Ausrichtung in Grid folgt zwei Achsen: Die Inline-Achse (horizontal bei LTR-Sprachen) wird mit justify-* gesteuert, die Block-Achse (vertikal) mit align-*. Das ist einfacher als bei Flexbox, weil die Achsen bei Grid nicht wechseln.

Es gibt drei Ebenen der Ausrichtung:

  1. Items in Zellen (justify-items / align-items): Wie werden Items innerhalb ihrer Grid-Zelle positioniert? Standard ist stretch, die Items füllen die gesamte Zelle.
  2. Tracks im Container (justify-content / align-content): Wie werden die Grid-Tracks (Spalten/Zeilen) innerhalb des Containers verteilt? Nur relevant, wenn der Container größer ist als die Tracks.
  3. Einzelnes Item (justify-self / align-self): Überschreibt die Ausrichtung für ein einzelnes Item.

Die place-* Shorthands kombinieren jeweils align-* und justify-* in einer Deklaration. Die Reihenfolge ist immer: erst align, dann justify (block-axis zuerst).

Grid verwendet start und end (nicht flex-start und flex-end wie Flexbox). gap funktioniert identisch wie bei Flexbox.

Syntax & Werte

justify-items / align-items

Wert Beschreibung Beispiel
stretch Items füllen die gesamte Zelle aus (Standard für justify-items und align-items). justify-items: stretch
start Items werden am Anfang der Zelle ausgerichtet. justify-items: start
center Items werden in der Mitte der Zelle zentriert. align-items: center
end Items werden am Ende der Zelle ausgerichtet. justify-items: end

justify-content / align-content

Wert Beschreibung Beispiel
start Tracks werden am Anfang des Containers platziert. justify-content: start
center Tracks werden im Container zentriert. justify-content: center
end Tracks werden am Ende des Containers platziert. justify-content: end
stretch Tracks werden gestreckt, um den Container zu füllen. justify-content: stretch
space-between Gleicher Abstand zwischen den Tracks, kein Abstand am Rand. justify-content: space-between
space-around Gleicher Abstand um jeden Track, halber Abstand am Rand. justify-content: space-around
space-evenly Gleicher Abstand überall, auch am Rand. justify-content: space-evenly

place-items / place-content (Shorthands)

Wert Beschreibung Beispiel
<align> <justify> Erst align (Block-Achse), dann justify (Inline-Achse). place-items: center start
<value> Ein Wert wird für beide Achsen verwendet. place-items: center

justify-self / align-self

Wert Beschreibung Beispiel
auto Übernimmt den Wert von justify-items/align-items des Containers (Standard). justify-self: auto
start Item wird am Anfang der Zelle ausgerichtet. justify-self: start
center Item wird in der Mitte der Zelle zentriert. justify-self: center
end Item wird am Ende der Zelle ausgerichtet. justify-self: end
stretch Item wird gestreckt, um die Zelle zu füllen. justify-self: stretch

gap, row-gap, column-gap

Wert Beschreibung Beispiel
<length> Abstand zwischen allen Tracks. gap: 16px
<row-gap> <column-gap> Unterschiedliche Abstände für Zeilen und Spalten. gap: 16px 8px
row-gap Nur der Abstand zwischen Zeilen. row-gap: 16px
column-gap Nur der Abstand zwischen Spalten. column-gap: 8px

Beispiele

justify-items und align-items

justify-items richtet Items horizontal in ihrer Zelle aus, align-items vertikal. Standard ist stretch (Items füllen die Zelle).

justify-items und align-items
/* Items füllen die Zelle (Standard) */
.stretch { justify-items: stretch; align-items: stretch; }

/* Items oben links */
.start { justify-items: start; align-items: start; }

/* Items zentriert */
.center { justify-items: center; align-items: center; }

/* Items unten rechts */
.end { justify-items: end; align-items: end; }

justify-content: Tracks im Container verteilen

justify-content verteilt die Spalten-Tracks innerhalb des Containers. Das ist nur sichtbar, wenn der Container breiter ist als die Tracks (z.B. bei festen Spaltenbreiten).

justify-content Varianten
.container {
  display: grid;
  grid-template-columns: 60px 60px 60px;
  /* Container ist breiter als 3 × 60px */
}

.start   { justify-content: start; }
.center  { justify-content: center; }
.between { justify-content: space-between; }
.evenly  { justify-content: space-evenly; }

place-items: center

place-items: center ist die kürzeste Art, Items vertikal und horizontal in ihren Zellen zu zentrieren. Ein Wert gilt für beide Achsen.

place-items: center
.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: 80px;
  place-items: center;
  gap: 8px;
}

/* Entspricht: */
/* align-items: center; */
/* justify-items: center; */

justify-self und align-self

justify-self und align-self überschreiben die Ausrichtung für ein einzelnes Item. Hier wird Item C anders ausgerichtet als die anderen.

justify-self und align-self
.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-auto-rows: 70px;
  /* Alle Items: stretch (Standard) */
}

.special {
  justify-self: center;  /* Nur dieses Item horizontal zentriert */
  align-self: end;       /* Nur dieses Item vertikal am Ende */
}

gap mit verschiedenen Werten

gap definiert den Abstand zwischen Tracks. Mit zwei Werten setzt du unterschiedliche Abstände für Zeilen und Spalten.

gap mit verschiedenen Werten
/* Gleicher Abstand überall */
.equal { gap: 16px; }

/* Unterschiedlich: 24px Zeilen, 8px Spalten */
.different { gap: 24px 8px; }

/* Entspricht: */
/* row-gap: 24px; */
/* column-gap: 8px; */

Barrierefreiheit

Ausrichtungseigenschaften wie justify-items, align-items oder place-items verschieben Items nur visuell innerhalb ihrer Zellen. Sie ändern weder die Tab-Reihenfolge noch die Lesereihenfolge für Screenreader. Das bedeutet: Im Gegensatz zu grid-column oder grid-row sind diese Eigenschaften aus Barrierefreiheitssicht unbedenklich.

Die einzige Ausnahme: Wenn du align-self oder justify-self verwendest, um ein interaktives Element (z.B. einen Button) visuell weit von seinem logischen Kontext zu entfernen, kann das verwirrend sein. Der Button bleibt aber in der Tab-Reihenfolge an seiner logischen Position, was gut ist.

Häufige Fehler

  • start/end vs. flex-start/flex-end: In Grid heißen die Werte start und end. flex-start und flex-end funktionieren nur in Flexbox. Der Browser akzeptiert sie zwar in Grid, aber es ist nicht die korrekte Schreibweise.
  • content vs. items verwechseln: justify-content verteilt die Tracks (Spalten) im Container. justify-items richtet die Items in ihren Zellen aus. Wenn du die Zentrierung der Items meinst, willst du justify-items, nicht justify-content.
  • justify-content ohne Effekt: Wenn die Spalten mit fr-Einheiten definiert sind, füllen die Tracks automatisch den gesamten Container. justify-content hat dann keinen sichtbaren Effekt, weil kein Platz übrig ist. Verwende feste Breiten, um den Effekt zu sehen.
  • place-items Reihenfolge: place-items: center start bedeutet align-items: center (Block-Achse) und justify-items: start (Inline-Achse). Die Block-Achse kommt zuerst. Wer justify zuerst erwartet, setzt die Werte vertauscht.
  • align-self ohne sichtbaren Effekt: Wenn die Zeilenhöhe genau dem Inhalt entspricht (auto), hat align-self keinen sichtbaren Effekt, weil es keinen überschüssigen Platz gibt. Setze eine feste Zeilenhöhe oder grid-auto-rows, um die Auswirkung zu sehen.

Browser-Kompatibilität

Alle Grid-Ausrichtungseigenschaften werden von allen modernen Browsern vollständig unterstützt.

ClientUnterstützungHinweise
ChromeKomplett
FirefoxKomplett
SafariKomplett
EdgeKomplett
OperaKomplett

Email-Kompatibilität

Grid-Ausrichtung hat in HTML-Emails sehr eingeschränkten Support. Für E-Mail-Layouts solltest du auf Tabellen-basierte Layouts zurückgreifen.

ClientUnterstützungHinweise
Apple MailTeilweiseGrundlegende Ausrichtung wird unterstützt
GmailKeineGrid wird komplett ignoriert
OutlookKeineKein Grid-Support, Tabellen-Layouts verwenden
ThunderbirdTeilweiseGrundlegende Ausrichtung wird unterstützt
Yahoo MailKeineKein Grid-Support

Verwandte Eigenschaften

Bleib auf dem Laufenden

Erhalte neue Inhalte direkt in dein Postfach

Mit der Anmeldung akzeptierst du unsere Datenschutzerklärung. Du kannst dich jederzeit über den Link in den E-Mails wieder abmelden.

Was erwartet dich?

Neue Artikel & Videos

Wenn ich was Neues veröffentliche, erfährst du's hier zuerst.

Plattform & Kurs-Updates

Neue Kurse, Referenz-Updates und gelegentlich Sonderpreise zum Launch.

Einmal die Woche in deinem Postfach

Kurz, auf den Punkt, kein Spam.