Box-Ausrichtung im Grid-Layout
Das CSS-Box-Ausrichtungsmodul beschreibt, wie die Ausrichtung in verschiedenen Layout-Methoden funktioniert. Auf dieser Seite untersuchen wir, wie die Box-Ausrichtung im Kontext des CSS-Grid-Layouts funktioniert.
Da dieser Leitfaden darauf abzielt, Dinge zu erläutern, die spezifisch für das CSS-Grid-Layout und die Box-Ausrichtung sind, sollte er zusammen mit dem Übersicht zur Box-Ausrichtung Leitfaden gelesen werden, der die gemeinsamen Merkmale der Box-Ausrichtung über verschiedene Layout-Methoden hinweg beschreibt.
Einfaches Beispiel
In diesem Beispiel mit Grid-Layout gibt es nach dem Anordnen der Festbreiten-Spuren auf der Inline-Hauptachse zusätzlichen Platz im Grid-Container. Dieser Raum wird mit justify-content
verteilt. Auf der Block-Querachse wird die Ausrichtung der Elemente innerhalb ihrer Grid-Bereiche mit align-items
gesteuert. Das erste Element überschreibt den align-items
-Wert, der für die Gruppe gesetzt ist, indem es align-self
auf center
setzt.
<div class="box">
<div>One</div>
<div>Two</div>
<div>Three <br />has <br />extra <br />text</div>
<div>Four</div>
<div>Five</div>
<div>Six</div>
</div>
.box {
display: grid;
grid-template-columns: 120px 120px 120px;
align-items: start;
justify-content: space-between;
border: 2px dotted rgb(96 139 168);
}
.box :first-child {
align-self: center;
}
Grid-Achsen
Als zweidimensionale Layout-Methode stehen uns beim Arbeiten mit Grid-Layout immer zwei Achsen zur Verfügung, auf denen wir unsere Elemente ausrichten können. Wir haben Zugriff auf alle Eigenschaften der Box-Ausrichtung, um dies zu erreichen.
Die Inline-Achse entspricht der Richtung, in der Wörter in einem Satz im verwendeten Schreibmodus laufen würden. Daher verläuft in einer horizontalen Sprache wie Englisch oder Arabisch die Inline-Richtung horizontal. Sollten Sie sich in einem vertikalen Schreibmodus befinden, verläuft die Inline-Achse vertikal.
Um Dinge auf der Inline-Achse auszurichten, verwenden Sie die Eigenschaften, die mit justify-
beginnen: justify-content
, justify-items
und justify-self
.
Die Block-Achse kreuzt die Inline-Achse in der Richtung, in der Blöcke auf der Seite angezeigt werden — beispielsweise werden Absätze im Englischen vertikal untereinander dargestellt. Dies ist die Block-Dimension.
Um Dinge auf der Block-Achse auszurichten, verwenden Sie die Eigenschaften, die mit align-
beginnen, align-content
, align-items
und align-self
.
Selbst-Ausrichtung
Diese Eigenschaften befassen sich mit der Ausrichtung des Elements innerhalb des Grid-Bereichs, in den es platziert wird:
Die *-items
-Eigenschaften, align-items
und justify-items
, werden auf den Grid-Container angewendet und setzen die Ausrichtung für alle Grid-Elemente als Gruppe. Die *-self
-Eigenschaften, align-self
und justify-self
, werden stattdessen auf die Grid-Elemente gesetzt. Dies bedeutet, dass Sie die Ausrichtung auf alle Grid-Elemente festlegen und dann einzelne Elemente überschreiben können, die eine andere Ausrichtung benötigen, indem Sie die align-self
- oder justify-self
-Eigenschaft auf die Regeln für die einzelnen Grid-Elemente anwenden.
Der Anfangswert für align-items
und justify-items
ist stretch
, und der Anfangswert für align-self
und justify-self
ist auto
, sodass das Element sich über den gesamten Grid-Bereich erstrecken wird. Die Ausnahme von dieser Regel ist, wenn das Element ein intrinsisches Seitenverhältnis hat, z.B. ein Bild. In diesem Fall wird das Element in beiden Dimensionen auf start
ausgerichtet, um zu verhindern, dass das Bild verzerrt wird.
Inhaltsausrichtung
Diese Eigenschaften befassen sich mit der Ausrichtung der Grid-Spuren, wenn zusätzlicher Platz zu verteilen ist:
Dieses Szenario tritt ein, wenn die von Ihnen definierten Spuren insgesamt weniger als die Gesamtbreite des Grid-Containers ausmachen.
Abstand und veraltete Grid-Abstandseigenschaften
Diese Eigenschaften definieren den Abstand zwischen Grid-Elementen innerhalb eines Grid-Containers:
Die Grid-Spezifikation enthielt ursprünglich die Definition der Eigenschaften grid-row-gap
, grid-column-gap
und grid-gap
. Diese wurden inzwischen in die Box-Ausrichtungspezifikation verschoben und zu row-gap
, column-gap
und gap
aliasiert. Dies ermöglicht es ihnen, in anderen Layout-Methoden verwendet zu werden, wo ein Abstand zwischen Elementen sinnvoll ist.