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 für alle direkten Kinder als Gruppe. In Flexbox steuert sie die Ausrichtung der Elemente auf der cross axis. In Grid-Layouts steuert sie die Ausrichtung der Elemente auf der Blockachse innerhalb ihrer grid areas.
Probieren Sie es aus
Das interaktive Beispiel unten zeigt einige der Werte für align-items unter Verwendung von Grid- 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 hängt vom Layoutmodus ab, in dem wir uns befinden:
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
startbei ersetzten absolut positionierten Boxen und wiestretchbei 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 Grid-Elemente führt dieses Schlüsselwort zu einem Verhalten ähnlich dem von
stretch, außer bei Boxen mit einem aspect ratio oder intrinsischen Größen, wo es sich wiestartverhält. - Die Eigenschaft gilt nicht für Block-Level-Boxen und Tabellenzellen.
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
center-
Die Margin-Boxen der Flex-Elemente sind innerhalb der Linie auf der Kreuzachse zentriert. Wenn die Kreuzgröße eines Elements größer ist als der Flex-Container, wird es in beide Richtungen gleichmäßig überlaufen.
start-
Die Elemente sind bündig zueinander hin zum Start-Rand des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
end-
Die Elemente sind bündig zueinander hin zum End-Rand des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
self-start-
Die Elemente sind bündig zum Rand der Startseite des Elements des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
self-end-
Die Elemente sind bündig zum Rand der Endseite des Elements des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
baseline,first baseline,last baseline-
Alle Flex-Elemente sind so ausgerichtet, dass ihre flex container baselines ausgerichtet sind. Das Element mit dem größten Abstand zwischen seinem Kreuz-Start-Margenkante und seiner Baseline wird mit der Kreuz-Start-Kante der Linie abgespült.
stretch-
Wenn die Elemente kleiner als der Ausrichtungscontainer sind, werden automatisch dimensionierte Elemente gleichmäßig vergrößert, um den Container zu füllen, wobei die Breiten- und Höhenbegrenzungen der Elemente respektiert werden.
anchor-center-
Bei anchor-positioned Elementen werden die Elemente zur Mitte des zugeordneten Anker-Elements in Blockrichtung ausgerichtet. Siehe Zentrieren am Anker mit
anchor-center. safe-
Wird in Verbindung mit einem Ausrichtungsschlüsselwort verwendet. Wenn das gewählte Schlüsselwort bedeutet, dass das Element den Ausrichtungscontainer überläuft und Datenverlust verursacht, wird das Element stattdessen so ausgerichtet, als wäre der Ausrichtungsmodus
start. unsafe-
Wird in Verbindung mit einem Ausrichtungsschlüsselwort verwendet. Unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers und ob ein Überlauf, der Datenverlust verursacht, auftreten könnte, wird der angegebene Ausrichtungswert beachtet.
Es gibt auch zwei Werte, die für Flexbox definiert wurden, da sie auf flex model axes Konzepten basieren und auch in Grid-Layouts funktionieren:
flex-start-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig gegen die Haupt-Start- oder Kreuz-Start-Seite des Flex-Containers aus. Wenn außerhalb eines Flex-Formatierungskontextes verwendet, verhält sich dieser Wert wie
start. flex-end-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig gegen die Haupt-End- oder Kreuz-End-Seite des Flex-Containers aus. Wenn außerhalb eines Flex-Formatierungskontextes verwendet, 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 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, um einen zusätzlichen Indikator zu bieten, dass das Layout geändert wurde. Die sechs Flex-Elemente haben jeweils eine andere Hintergrundfarbe, wobei das 4. Element zwei Zeilen lang ist und das 6. Element eine vergrößerte Schriftart 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 der Übersichtlichkeit halber 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 |
Browser-Kompatibilität
BCD tables only load in the browser