align-items CSS property
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Die CSS align-items-Eigenschaft setzt den align-self-Wert für alle direkten Kinder als Gruppe. In Flexbox steuert sie die Ausrichtung von Elementen auf der Querachse. Im Grid-Layout steuert sie die Ausrichtung der Elemente auf der Blockachse innerhalb ihrer Grid-Bereiche.
Das interaktive Beispiel unten verwendet das Grid-Layout, um einige der Werte dieser Eigenschaft zu demonstrieren.
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;
}
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 Layout-Modus 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 absolut positionierter Layouts verhält sich das Schlüsselwort wie
stretch. - Bei Flex-Elementen verhält sich das Schlüsselwort wie
stretch. - Bei Grid-Elementen 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 wiestartverhält. - Die Eigenschaft gilt nicht für Block-Boxen und Tabellzellen.
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
center-
Die Randboxen der Flex-Elemente sind innerhalb der Linie auf der Querachse zentriert. Wenn die Quergröße eines Elements größer als der Flex-Container ist, wird es gleichmäßig in beide Richtungen überlaufen.
start-
Die Elemente sind bündig aneinander gepackt zum Startpunkt des Ausrichtungscontainers in der entsprechenden Achse.
end-
Die Elemente sind bündig aneinander gepackt zum Endpunkt des Ausrichtungscontainers in der entsprechenden Achse.
self-start-
Die Elemente sind bündig zur Kante der Startseite des Ausrichtungscontainers des Elements in der entsprechenden Achse gepackt.
self-end-
Die Elemente sind bündig zur Kante der Endseite des Ausrichtungscontainers des Elements in der entsprechenden Achse gepackt.
baseline,first baseline,last baseline-
Alle Flex-Elemente sind so ausgerichtet, dass ihre Flex-Container-Baselines übereinstimmen. Das Element mit dem größten Abstand zwischen seinem Rand der Querachse zum Anfang und seiner Baseline liegt bündig mit dem Startpunkt der Querachse der Linie.
stretch-
Wenn die Quergröße des Elements
autoist, wird die verwendetet Größe auf die benötigte Länge gesetzt, um den Container so weit wie möglich auszufüllen, dabei jedoch die Breiten- und Höhenbeschränkungen des Elements zu respektieren. Wenn das Element nicht automatisch dimensioniert ist, fällt dieser Wert aufflex-startzurück, und aufself-startoderself-end, wenn dasalign-contentdes Containersfirst baseline(oderbaseline) oderlast baselineist. anchor-center-
Bei ankerverankerten Elementen richtet es die Elemente in der Blockrichtung am Zentrum des zugeordneten Ankerelements aus. Siehe Zentrieren am Anker mit
anchor-center. safe-
Wird zusammen 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 zusammen mit einem Ausrichtungsschlüsselwort verwendet. Ungeachtet der relativen Größen des Elements und des Ausrichtungscontainers und ob es zu Überläufen kommt, die Datenverlust verursachen könnten, wird der gegebene Ausrichtungswert erfüllt.
Es gibt auch zwei Werte, die für Flexbox definiert sind, da sie auf Konzepten der Flex-Modellachsen basieren und auch in Grid-Layouts funktionieren:
flex-start-
Wird nur im Flex-Layout verwendet und richtet die Flex-Elemente bündig zur Hauptstart- oder Querstartseite des Flex-Containers aus. Bei Verwendung außerhalb eines Flex-Formatierungskontexts verhält sich dieser Wert wie
start. flex-end-
Wird nur im Flex-Layout verwendet und richtet die Flex-Elemente bündig zur Hauptend- oder Querendseite des Flex-Containers aus. Bei Verwendung außerhalb eines Flex-Formatierungskontexts 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
align-items =
normal |
stretch |
<baseline-position> |
<overflow-position>? <self-position>
<baseline-position> =
[ first | last ]? &&
baseline
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
Beispiele
In diesem Beispiel haben wir einen Container mit sechs Kindern. Ein <select> Dropdown-Menü ermöglicht das Umschalten des display des Containers zwischen grid und flex. Ein zweites Menü ermöglicht das Ändern des Werts der align-items-Eigenschaft des Containers.
CSS
Wir gestalten den Container und die Elemente so, dass wir zwei Zeilen 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 Randfarben, um einen zusätzlichen Hinweis darauf zu geben, 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 verborgen.
<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
| Spezifikation |
|---|
| CSS Box Alignment Module Level 3 # align-items-property |
| CSS Flexible Box Layout Module Level 1 # align-items-property |