place-items

Avatar of Geoff Graham
Geoff Graham am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Die CSS-Eigenschaft place-items ist eine Kurzschreibweise für die Eigenschaften align-items und justify-items und fasst sie in einer einzigen Deklaration zusammen.

Eine häufige Anwendung ist die horizontale und vertikale Zentrierung mit Grid

.center-inside-of-me {
  display: grid;
  place-items: center;
}

Diese Eigenschaften wurden mit der Einführung von Flexbox und Grid-Layouts immer wichtiger, werden aber auch für

  • Block-Level-Boxen
  • Absolut positionierte Boxen
  • Statische Position von absolut positionierten Boxen
  • Tabellenzellen

Syntax

Die Eigenschaft akzeptiert zwei Werte, der erste für align-items und der zweite für justify-items. Zur Erinnerung: align-items richtet Inhalte entlang der vertikalen (Spalten-)Achse aus, während justify-items entlang der horizontalen (Zeilen-)Achse ausrichtet.

.item {
  display: grid;
  place-items: start center;
}

Das ist dasselbe wie:

.item {
  display: grid;
  align-items: start;
  justify-items: center;
}

Wenn nur ein Wert angegeben wird, setzt dieser beide Eigenschaften. Zum Beispiel dieser

.item {
  display: grid;
  place-items: start;
}

…ist dasselbe wie dieser

.item {
  display: grid;
  align-items: start;
  justify-items: start;
}

Akzeptierte Werte

Was diese Eigenschaft interessant macht, ist, dass sie sich je nach Kontext, in dem sie verwendet wird, unterschiedlich verhält. Einige Werte gelten beispielsweise nur für Flexbox und funktionieren nicht in einem Grid-Setup. Zusätzlich gelten einige Werte für die Eigenschaft align-items, während andere für die Seite justify-items gelten.

Darüber hinaus können die Werte selbst als in eine Reihe von Ausrichtungstypen fallend betrachtet werden: kontextuell, Distribution, positional (was zu self-positional wird, wenn es direkt auf ein Kind-Element im Layout angewendet wird) und baseline.

Rachel Andrew hat ein ausgezeichnetes Box Alignment Cheat Sheet, das hilft, die Wirkung der Werte zu veranschaulichen.

WertTypBeschreibung
autoKontextuellDer Wert passt sich entsprechend dem Kontext des Elements an. Er verwendet den justify-items-Wert des Elternelements. Wenn kein Elternelement vorhanden ist oder er auf ein Element angewendet wird, das mit absolute positioniert ist, wird der Wert zu normal.
normalKontextuellNimmt das Standardverhalten des Layoutkontextes an, in dem es angewendet wird.

• Block-Level-Layouts: start
• Absolute Positionierung: start für ersetzte absolute Elemente und stretch für alle anderen
• Tabellenlayouts: Wert wird ignoriert
• Flexbox-Layouts: Wert wird ignoriert
• Grid-Layouts: stretch, es sei denn, ein Seitenverhältnis oder intrinsische Größenangabe wird verwendet, wo es sich wie start verhält
stretchDistributionErweitert das Element vertikal für align-items und horizontal für justify-items zu beiden Kanten des Containers.
startPositionalAlle Elemente werden aneinander am Anfangs (linken) Rand des Containers ausgerichtet
endPositionalAlle Elemente werden aneinander am Ende (rechten) Rand des Containers ausgerichtet
centerPositionalDie Elemente werden nebeneinander zur Mitte des Containers ausgerichtet
leftPositionalDie Elemente werden nebeneinander zum linken Rand des Containers ausgerichtet. Wenn die Eigenschaft nicht parallel zu einer Standard-Achse oben, rechts, unten, links verläuft, verhält sie sich wie end.
rightPositionalDie Elemente werden nebeneinander zum rechten Rand des Containers ausgerichtet. Wenn die Eigenschaft nicht parallel zu einer Standard-Achse oben, rechts, unten, links verläuft, verhält sie sich wie start.
flex-startPositionalEin nur für Flexbox gültiger Wert (der auf start zurückfällt), bei dem Elemente zum Anfangsrand des Containers gepackt werden.
flex-endPositionalEin nur für Flexbox gültiger Wert (der auf end zurückfällt), bei dem Elemente zum Endrand des Containers gepackt werden.
self-startSelf-PositionalErmöglicht es einem Element in einem Layout, sich am Container-Rand basierend auf seiner eigenen Startseite auszurichten. Überschreibt im Grunde den auf dem Elternteil gesetzten Wert.
self-endSelf-PositionalErmöglicht es einem Element in einem Layout, sich am Container-Rand basierend auf seiner eigenen Endseite auszurichten, anstatt den Positions-Wert des Containers zu erben. Überschreibt im Grunde den auf dem Elternteil gesetzten Wert.
first baseline
last baseline
BaselineRichtet alle Elemente innerhalb einer Gruppe (z.B. Zellen innerhalb einer Zeile) aus, indem ihre Ausrichtungs-Baselines abgeglichen werden. Standardmäßig first, wenn baseline allein verwendet wird.

Browser-Unterstützung

Diese Eigenschaft ist im CSS Box Alignment Model Level 3 enthalten.

Browserunterstützung ist ziemlich breit und stabil

  • Edge 79+ (post-Chromium)
  • Firefox 45+
  • Chrome 59+
  • Safari 11+

Referenzen