PFAD: ./module/css/css2/

DATEI: string(25) "00Inhaltsverzeichnis2.php"
DATEI: string(21) "11Flex-Grundlagen.php"
DATEI: string(19) "12Flex-Property.php"
DATEI: string(14) "13CSS-Grid.php"
DATEI: string(20) "14Grid-Placement.php"
DATEI: string(21) "15Grid-Ausrichten.php"

css mit Adi Prinz

Grid-Elemente ausrichten

Mit CSS Grid lassen sich Container, Grid-Items und deren Inhalte unabhängig voneinander ausrichten. Je nachdem, welche Ebene ausgerichtet werden soll, stehen unterschiedliche CSS-Eigenschaften zur Verfügung.

Dabei wird zwischen drei Ebenen unterschieden:

  • Grid-Container – richtet das gesamte Grid innerhalb des Containers aus.
  • Grid-Items – richtet alle Grid-Items innerhalb ihrer Grid-Areas aus.
  • Einzelne Grid-Items – richtet einzelne Grid-Items unabhängig von den übrigen aus.

Für diese drei Ebenen stehen insgesamt sechs Ausrichtungseigenschaften sowie drei Kurzschreibweisen (Shorthands) zur Verfügung:

  • justify-content
  • align-content
  • justify-items
  • align-items
  • justify-self
  • align-self

Übersicht der Ausrichtungseigenschaften

Die folgende Tabelle zeigt, welche Eigenschaften für welche Ebene des Grid-Layouts verwendet werden.

Ebene Horizontale Ausrichtung
(Inline-Achse)
Vertikale Ausrichtung
(Block-Achse)
Gesamtes Grid im Container justify-content align-content
Alle Grid-Items justify-items align-items
Ein einzelnes Grid-Item justify-self align-self
Kurzschreibweisen (Shorthands) place-content, place-items, place-self

Grid-Achsen

CSS Grid arbeitet immer mit zwei Achsen. Alle Ausrichtungseigenschaften beziehen sich entweder auf die Inline-Achse oder auf die Block-Achse.

Inline-Achse (horizontal)

Die Inline-Achse verläuft in Schreibrichtung einer Zeile. In unseren Beispielen ist das von links nach rechts.

  • justify-content
  • justify-items
  • justify-self

Block-Achse (vertikal)

Die Block-Achse verläuft senkrecht zur Inline-Achse. In unseren Beispielen ist das von oben nach unten.

  • align-content
  • align-items
  • align-self

Wichtige Begriffe

  • Inline-Achse (inline-axis) – horizontale Achse.
  • Block-Achse (block-axis) – vertikale Achse.
  • Row-Achse – entspricht der Block-Achse.
  • Column-Achse – entspricht der Inline-Achse.

Ausrichten an der Inline-Achse

Alle Eigenschaften dieses Abschnitts richten Elemente entlang der Inline-Achse (horizontal) aus. Je nach Eigenschaft wird entweder das gesamte Grid, alle Grid-Items oder ein einzelnes Grid-Item ausgerichtet.

  • justify-content – richtet das gesamte Grid aus.
  • justify-items – richtet alle Grid-Items aus.
  • justify-self – richtet ein einzelnes Grid-Item aus.

justify-content

Mit justify-content wird das gesamte Grid innerhalb des Grid-Containers entlang der Inline-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn entlang der Inline-Achse freier Platz vorhanden ist. Ist das Grid bereits so breit wie der Container, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • normal – verwendet das normale Ausrichtungsverhalten.
  • start – richtet das Grid am Beginn der Inline-Achse aus.
  • end – richtet das Grid am Ende der Inline-Achse aus.
  • center – zentriert das Grid entlang der Inline-Achse.
  • space-between – verteilt den freien Platz zwischen den Grid-Columns.
  • space-around – verteilt den freien Platz um die Grid-Columns.
  • space-evenly – verteilt den freien Platz gleichmäßig zwischen und neben den Grid-Columns.
Merke:
justify-content richtet das gesamte Grid innerhalb des Grid-Containers aus. Die einzelnen Grid-Items werden dadurch nicht innerhalb ihrer Grid-Areas ausgerichtet.

Beispiel-CSS

.wrapper20 {
  display: grid;
  gap: 2px;
  grid-template-columns: repeat(3, 100px);
  grid-template-rows: repeat(2, 100px);
  justify-content: space-evenly;
}

Beispiel-HTML

<div class="wrapper20">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

justify-items

Mit justify-items werden alle Grid-Items innerhalb ihrer jeweiligen Grid-Area entlang der Inline-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn die Grid-Areas breiter als ihre Inhalte sind. Füllt ein Grid-Item seine Grid-Area bereits vollständig aus, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • normal – verwendet das normale Ausrichtungsverhalten.
  • stretch – dehnt die Grid-Items entlang der Inline-Achse aus (Standardwert).
  • start – richtet alle Grid-Items am Beginn der Inline-Achse aus.
  • end – richtet alle Grid-Items am Ende der Inline-Achse aus.
  • center – zentriert alle Grid-Items innerhalb ihrer Grid-Areas.
Merke:
justify-items richtet alle Grid-Items innerhalb ihrer jeweiligen Grid-Area aus. Die Position des gesamten Grids im Grid-Container wird dadurch nicht verändert.

Beispiel-CSS

.wrapper21 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
  justify-items: center;
}

Beispiel-HTML

<div class="wrapper21">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

justify-self

Mit justify-self wird ein einzelnes Grid-Item innerhalb seiner Grid-Area entlang der Inline-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn die Grid-Area breiter als das Grid-Item ist. Füllt das Grid-Item seine Grid-Area vollständig aus, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • auto – übernimmt den Wert von justify-items.
  • normal – verwendet das normale Ausrichtungsverhalten.
  • stretch – dehnt das Grid-Item entlang der Inline-Achse aus (Standardwert).
  • start – richtet das Grid-Item am Beginn der Inline-Achse aus.
  • end – richtet das Grid-Item am Ende der Inline-Achse aus.
  • center – zentriert das Grid-Item innerhalb seiner Grid-Area.
Merke:
justify-self richtet nur ein einzelnes Grid-Item innerhalb seiner Grid-Area aus. Alle anderen Grid-Items bleiben unverändert.

Beispiel-CSS

.wrapper22 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
}

.wrapper22 .item:first-child {
  justify-self: end;
}

Beispiel-HTML

<div class="wrapper22">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

Ausrichten an der Block-Achse

Für das Ausrichten an der Block-Achse bietet CSS ebenfalls drei Eigenschaften:

  • align-content
  • align-items
  • align-self

align-content

Mit align-content wird das gesamte Grid innerhalb des Grid-Containers entlang der Block-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn entlang der Block-Achse freier Platz vorhanden ist. Ist das Grid bereits so hoch wie der Container, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • normal – verwendet das normale Ausrichtungsverhalten.
  • start – richtet das Grid am Beginn der Block-Achse aus.
  • end – richtet das Grid am Ende der Block-Achse aus.
  • center – zentriert das Grid entlang der Block-Achse.
  • space-between – verteilt den freien Platz zwischen den Grid-Rows.
  • space-around – verteilt den freien Platz um die Grid-Rows.
  • space-evenly – verteilt den freien Platz gleichmäßig zwischen und neben den Grid-Rows.
Merke:
align-content richtet das gesamte Grid innerhalb des Grid-Containers aus. Die einzelnen Grid-Items werden dadurch nicht innerhalb ihrer Grid-Areas ausgerichtet.

Beispiel-CSS

.wrapper23 {
  gap: 2px;
  height: 500px;
  grid-template-columns: repeat(3, 100px);
  grid-template-rows: repeat(2, 100px);
  align-content: space-evenly;
}

Beispiel-HTML

<div class="wrapper23">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

align-items

Mit align-items werden alle Grid-Items innerhalb ihrer jeweiligen Grid-Area entlang der Block-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn die Grid-Areas höher als ihre Inhalte sind. Füllt ein Grid-Item seine Grid-Area bereits vollständig aus, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • normal – verwendet das normale Ausrichtungsverhalten.
  • stretch – dehnt die Grid-Items entlang der Block-Achse aus (Standardwert).
  • start – richtet alle Grid-Items am Beginn der Block-Achse aus.
  • end – richtet alle Grid-Items am Ende der Block-Achse aus.
  • center – zentriert alle Grid-Items innerhalb ihrer Grid-Areas.
Merke:
align-items richtet alle Grid-Items innerhalb ihrer jeweiligen Grid-Area aus. Die Position des gesamten Grids im Grid-Container wird dadurch nicht verändert.

Beispiel-CSS

.wrapper24 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
  align-items: center;
}

Beispiel-HTML

<div class="wrapper24">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

align-self

Mit align-self wird ein einzelnes Grid-Item innerhalb seiner Grid-Area entlang der Block-Achse ausgerichtet.

Die Eigenschaft wirkt nur, wenn die Grid-Area höher als das Grid-Item ist. Füllt das Grid-Item seine Grid-Area vollständig aus, ist keine Änderung sichtbar.

Folgende Werte sind möglich:

  • auto – übernimmt den Wert von align-items.
  • normal – verwendet das normale Ausrichtungsverhalten.
  • stretch – dehnt das Grid-Item entlang der Block-Achse aus (Standardwert).
  • start – richtet das Grid-Item am Beginn der Block-Achse aus.
  • end – richtet das Grid-Item am Ende der Block-Achse aus.
  • center – zentriert das Grid-Item innerhalb seiner Grid-Area.
Merke:
align-self richtet nur ein einzelnes Grid-Item innerhalb seiner Grid-Area aus. Alle anderen Grid-Items bleiben unverändert.

Beispiel-CSS

.wrapper25 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
}

.wrapper25 .item:first-child {
  align-self: end;
}

Beispiel-HTML

<div class="wrapper25">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

Kurzschreibweisen

CSS stellt außerdem drei Kurzschreibweisen (Shorthands) zur Verfügung. Sie fassen jeweils zwei Eigenschaften zusammen und sorgen für kürzeren, übersichtlicheren Code.

  • place-content
  • place-items
  • place-self

place-content

Mit place-content werden die Eigenschaften align-content und justify-content in einer einzigen Anweisung zusammengefasst.

Der erste Wert gilt für die Block-Achse (align-content), der zweite Wert für die Inline-Achse (justify-content). Wird nur ein Wert angegeben, gilt dieser für beide Achsen.

Folgende Schreibweisen sind möglich:

  • place-content: center; – richtet das Grid auf beiden Achsen zentriert aus.
  • place-content: start end; – Block-Achse: start, Inline-Achse: end.
  • place-content: space-evenly center; – verteilt die Grid-Rows gleichmäßig und zentriert das Grid entlang der Inline-Achse.
Merke:
place-content ist die Kurzschreibweise für align-content und justify-content.

Beispiel-CSS

.wrapper26 {
  gap: 2px;
  height: 500px;
  grid-template-columns: repeat(3, 100px);
  grid-template-rows: repeat(2, 100px);
  place-content: space-evenly center;
}

Beispiel-HTML

<div class="wrapper26">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

place-items

Mit place-items werden die Eigenschaften align-items und justify-items in einer einzigen Anweisung zusammengefasst.

Der erste Wert gilt für die Block-Achse (align-items), der zweite Wert für die Inline-Achse (justify-items). Wird nur ein Wert angegeben, gilt dieser für beide Achsen.

Folgende Schreibweisen sind möglich:

  • place-items: center; – richtet alle Grid-Items auf beiden Achsen zentriert aus.
  • place-items: start end; – Block-Achse: start, Inline-Achse: end.
  • place-items: stretch center; – dehnt die Grid-Items entlang der Block-Achse aus und zentriert sie entlang der Inline-Achse.
Merke:
place-items ist die Kurzschreibweise für align-items und justify-items.

Beispiel-CSS

.wrapper27 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
  place-items: center;
}

Beispiel-HTML

<div class="wrapper27">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

place-self

Mit place-self werden die Eigenschaften align-self und justify-self in einer einzigen Anweisung zusammengefasst.

Der erste Wert gilt für die Block-Achse (align-self), der zweite Wert für die Inline-Achse (justify-self). Wird nur ein Wert angegeben, gilt dieser für beide Achsen.

Folgende Schreibweisen sind möglich:

  • place-self: center; – richtet ein einzelnes Grid-Item auf beiden Achsen zentriert aus.
  • place-self: start end; – Block-Achse: start, Inline-Achse: end.
  • place-self: stretch center; – dehnt das Grid-Item entlang der Block-Achse aus und zentriert es entlang der Inline-Achse.
Merke:
place-self ist die Kurzschreibweise für align-self und justify-self. Sie wirkt nur auf ein einzelnes Grid-Item.

Beispiel-CSS

.wrapper28 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 100px);
}

.wrapper28 .item:first-child {
  place-self: center end;
}

Beispiel-HTML

<div class="wrapper28">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

Reihenfolge ändern

Standardmäßig werden Grid-Items in der Reihenfolge dargestellt, in der sie im HTML-Dokument stehen. Mit der Eigenschaft order kann diese Reihenfolge geändert werden, ohne den HTML-Code anzupassen.

order

Mit order kann die Reihenfolge von Grid-Items geändert werden, ohne den HTML-Code anzupassen.

Standardmäßig besitzen alle Grid-Items den Wert order: 0. Items mit einem kleineren Wert werden zuerst dargestellt, Items mit einem größeren Wert später.

Folgende Werte sind möglich:

  • order: 0 – Standardwert.
  • order: -1 – das Grid-Item wird vor den anderen Items dargestellt.
  • order: 1 – das Grid-Item wird hinter den anderen Items dargestellt.
  • Beliebige positive und negative Ganzzahlen sind möglich.
Merke:
order ändert nur die visuelle Reihenfolge der Grid-Items. Die Reihenfolge im HTML-Dokument bleibt unverändert.

Beispiel-CSS

.wrapper29 {
  gap: 2px;
  grid-template-columns: repeat(3, 1fr);
}

.wrapper29 .item:first-child {
  order: 2;
}

.wrapper29 .item:last-child {
  order: -1;
}

Beispiel-HTML

<div class="wrapper29">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
  <div class="item">5</div>
  <div class="item">6</div>
</div>

Beispiel-Ausgabe

1
2
3
4
5
6

Beispiel ausprobieren (w3schools)
Offizielle Dokumentation (MDN)

Zusammenfassung

Die folgende Tabelle fasst alle Eigenschaften zum Ausrichten und Anordnen von Grid-Items noch einmal zusammen.

Eigenschaft Wirkung
justify-content Richtet das gesamte Grid entlang der Inline-Achse aus.
justify-items Richtet alle Grid-Items innerhalb ihrer Grid-Areas entlang der Inline-Achse aus.
justify-self Richtet ein einzelnes Grid-Item innerhalb seiner Grid-Area entlang der Inline-Achse aus.
align-content Richtet das gesamte Grid entlang der Block-Achse aus.
align-items Richtet alle Grid-Items innerhalb ihrer Grid-Areas entlang der Block-Achse aus.
align-self Richtet ein einzelnes Grid-Item innerhalb seiner Grid-Area entlang der Block-Achse aus.
place-content Kurzschreibweise für align-content und justify-content.
place-items Kurzschreibweise für align-items und justify-items.
place-self Kurzschreibweise für align-self und justify-self.
order Ändert die visuelle Reihenfolge der Grid-Items.
Merke:
justify-* arbeitet entlang der Inline-Achse, align-* entlang der Block-Achse. Die place-*-Eigenschaften fassen jeweils zwei Ausrichtungseigenschaften zusammen, und order verändert die Reihenfolge der Grid-Items.