align-items
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
* Some parts of this feature may have varying levels of support.
Die CSS align-items
Eigenschaft setzt den align-self
Wert auf alle direkten Kinder als Gruppe. Im Flexbox-Layout steuert sie die Ausrichtung von Elementen auf der Querachse. Im Raster-Layout steuert sie die Ausrichtung von Elementen auf der Blockachse innerhalb ihrer Rasterbereiche.
Probieren Sie es aus
align-items: stretch;
align-items: center;
align-items: start;
align-items: end;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
width: 200px;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
}
#example-element > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
Das interaktive Beispiel unten demonstriert einige der Werte für align-items
unter Verwendung von Raster- und Flex-Layout.
Syntax
/* Basic keywords */
align-items: normal;
align-items: stretch;
/* Positional alignment */
/* align-items does not take left and right values */
align-items: center;
align-items: start;
align-items: end;
align-items: flex-start;
align-items: flex-end;
align-items: self-start;
align-items: self-end;
align-items: anchor-center;
/* Baseline alignment */
align-items: baseline;
align-items: first baseline;
align-items: last baseline;
/* Overflow alignment (for positional alignment only) */
align-items: safe center;
align-items: unsafe center;
/* Global values */
align-items: inherit;
align-items: initial;
align-items: revert;
align-items: revert-layer;
align-items: unset;
Werte
normal
-
Die Wirkung dieses Schlüsselworts ist abhängig vom Layout-Modus, in dem wir uns befinden:
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
start
bei ersetzten absolut positionierten Boxen und wiestretch
bei allen anderen absolut positionierten Boxen. - In der statischen Position von absolut positionierten Layouts verhält sich das Schlüsselwort wie
stretch
. - Für Flex-Elemente verhält sich das Schlüsselwort wie
stretch
. - Für Raster-Elemente führt dieses Schlüsselwort zu einem Verhalten ähnlich dem von
stretch
, außer bei Boxen mit einem Seitenverhältnis oder einer intrinsischen Größe, bei denen es sich wiestart
verhält. - Die Eigenschaft gilt nicht für Block-Level-Boxen und Tabellenelemente.
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
center
-
Die Margin-Boxen der Flex-Elemente sind innerhalb der Zeile auf der Querachse zentriert. Wenn die Querseite eines Elements größer ist als der Flex-Container, wird es gleichmäßig in beide Richtungen überlaufen.
start
-
Die Elemente sind bündig zueinander zum Start-Rand des Ausrichtungs-Containers in der entsprechenden Achse gepackt.
end
-
Die Elemente sind bündig zueinander zum End-Rand des Ausrichtungs-Containers in der entsprechenden Achse gepackt.
self-start
-
Die Elemente sind bündig zum Rand der Startseite des Ausrichtungs-Containers des Elements in der entsprechenden Achse gepackt.
self-end
-
Die Elemente sind bündig zum Rand der Endseite des Ausrichtungs-Containers des Elements in der entsprechenden Achse gepackt.
baseline
,first baseline
,last baseline
-
Alle Flex-Elemente sind so ausgerichtet, dass ihre Flex-Container-Grundlinien ausgerichtet sind. Das Element mit dem größten Abstand zwischen seiner Quer-Start-Margen-Kante und seiner Grundlinie wird an die Quer-Start-Kante der Zeile gespült.
stretch
-
Wenn die Elemente kleiner als der Ausrichtungs-Container sind, werden automatisch skalierte Elemente gleichermaßen vergrößert, um den Container zu füllen, unter Berücksichtigung der Breiten- und Höhenlimits der Elemente.
anchor-center
-
Im Fall von anker-positionierten Elementen richtet sich die Ausrichtung der Elemente auf das Zentrum des zugehörigen Ankerelements in Blockrichtung aus. Siehe Zentrierung auf dem Anker mit
anchor-center
. safe
-
Wird zusammen mit einem Ausrichtungs-Schlüsselwort verwendet. Falls das gewählte Schlüsselwort bedeutet, dass das Element den Ausrichtungs-Container überläuft und Datenverlust verursacht, wird das Element stattdessen so ausgerichtet, als ob der Ausrichtungsmodus
start
wäre. unsafe
-
Wird zusammen mit einem Ausrichtungs-Schlüsselwort verwendet. Unabhängig von den relativen Größen des Elements und des Ausrichtungs-Containers und ob ein Überlauf, der Datenverlust verursachen könnte, auftreten könnte, wird der gegebene Ausrichtungswert respektiert.
Es gibt auch zwei Werte, die für Flexbox definiert wurden, da sie auf Konzepten der Flex-Modell-Achsen basieren und ebenso im Raster-Layout funktionieren:
flex-start
-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig an der Haupt-Start- oder Quer-Start-Seite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontexts verwendet wird, verhält sich dieser Wert wie
start
. flex-end
-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig an der Haupt-Ende- oder Quer-Ende-Seite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontexts verwendet wird, verhält sich dieser Wert wie
end
.
Formale Definition
Anfangswert | normal |
---|---|
Anwendbar auf | alle Elemente |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
CSS
Wir gestalten den Container und die Elemente so, dass sichergestellt ist, dass wir zwei Linien oder Reihen von Elementen haben. Wir haben .flex
und .grid
Klassen definiert, die mit JavaScript auf den Container angewendet werden. Sie setzen den display
Wert des Containers und ändern seine Hintergrund- und Rahmenfarben, was einen zusätzlichen Indikator dafür bietet, dass sich das Layout geändert hat. Die sechs Flex-Elemente haben jeweils eine andere Hintergrundfarbe, wobei das 4. Element zwei Zeilen lang ist und das 6. Element eine vergrößerte Schrift hat.
.flex,
.grid {
height: 200px;
width: 500px;
align-items: initial; /* Change the value in the live sample */
border: solid 5px transparent;
gap: 3px;
}
.flex {
display: flex;
flex-wrap: wrap;
background-color: #8c8c9f;
border-color: magenta;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 100px);
background-color: #9f8c8c;
border-color: slateblue;
}
#item1 {
background-color: #8cffa0;
min-height: 30px;
}
#item2 {
background-color: #a0c8ff;
min-height: 50px;
}
#item3 {
background-color: #ffa08c;
min-height: 40px;
}
#item4 {
background-color: #ffff8c;
min-height: 60px;
}
#item5 {
background-color: #ff8cff;
min-height: 70px;
}
#item6 {
background-color: #8cffff;
min-height: 50px;
font-size: 30px;
}
HTML
Wir fügen einen Container <div>
mit sechs verschachtelten <div>
Kindern hinzu. Der HTML-Code für das Formular und das JavaScript, das die Klasse des Containers ändert, wurde aus Gründen der Kürze ausgeblendet.
<div id="container" class="flex">
<div id="item1">1</div>
<div id="item2">2</div>
<div id="item3">3</div>
<div id="item4">4<br />line 2</div>
<div id="item5">5</div>
<div id="item6">6</div>
</div>
Ergebnis
Spezifikationen
Specification |
---|
CSS Box Alignment Module Level 3 # align-items-property |
CSS Flexible Box Layout Module Level 1 # align-items-property |