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 Wert von align-self
auf alle direkten Kinder als Gruppe. Im Flexbox-Layout steuert sie die Ausrichtung der Elemente auf der Querachse. Im Grid-Layout steuert sie die Ausrichtung der Elemente auf der Blockachse innerhalb ihrer Gitterbereiche.
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 zeigt einige der Werte für align-items
mithilfe 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üsselwortes hängt vom verwendeten Layoutmodus ab:
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
start
auf ersetzten absolut positionierten Boxen und wiestretch
auf allen anderen absolut positionierten Boxen. - In der statischen Position von absolut positionierten 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, wo es sich wiestart
verhä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 Marginkästen der Flex-Elemente werden innerhalb der Linie auf der Querachse zentriert. Wenn die Quergröße eines Elements größer als der Flex-Container ist, wird es in beide Richtungen gleichmäßig überlaufen.
start
-
Die Elemente werden bündig zueinander zum Startkante des Ausrichtungscontainers auf der jeweiligen Achse gepackt.
end
-
Die Elemente werden bündig zueinander zur Endkante des Ausrichtungscontainers auf der jeweiligen Achse gepackt.
self-start
-
Die Elemente werden bündig zur Startkante des Ausrichtungscontainers an der entsprechenden Achse gepackt.
self-end
-
Die Elemente werden bündig zur Endkante des Ausrichtungscontainers an der entsprechenden Achse gepackt.
baseline
,first baseline
,last baseline
-
Alle Flex-Elemente sind so ausgerichtet, dass ihre Flex-Container-Baselines übereinstimmen. Das Element mit der größten Entfernung zwischen seiner Cross-Start-Margin-Kante und seiner Baseline ist mit der Cross-Start-Kante der Linie bündig.
stretch
-
Wenn die Elemente kleiner als der Ausrichtungscontainer sind, werden automatisch dimensionierte Elemente gleichmäßig vergrößert, um den Container zu füllen, unter Beachtung der Breiten- und Höhenbegrenzungen der Elemente.
anchor-center
-
Bei Anker-positionierten Elementen richtet es die Elemente an der Mitte des zugehörigen Ankerelements in der Blockrichtung 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 Datenverluste verursacht, wird das Element stattdessen so ausgerichtet, als wäre der Ausrichtungsmodus
start
. unsafe
-
Wird zusammen mit einem Ausrichtungsschlüsselwort verwendet. Unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers und ob ein Überlauf, der Datenverluste verursachen könnte, auftritt, wird der gegebene Ausrichtungswert eingehalten.
Es gibt auch zwei Werte, die für Flexbox definiert wurden, basierend auf Konzepten der Flexmodellation, die auch in Grid-Layouts funktionieren:
flex-start
-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig zur Haupt-Start- oder Quer-Start-Seite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontextes verwendet wird, verhält sich dieser Wert wie
start
. flex-end
-
Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig zur Haupt-End- oder Quer-End-Seite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontextes 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 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 dessen Hintergrund- und Rahmenfarben, was einen zusätzlichen Hinweis darauf gibt, 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 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>
-Unterelementen ein. Der HTML-Code für das Formular und das JavaScript, das die Klasse des Containers ändert, wurden der Kürze 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 |