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 legt den Wert von align-self für alle direkten Kinder als Gruppe fest. Im Flexbox-Modell steuert es die Ausrichtung von Elementen auf der Kreuzachse. Im Grid-Layout steuert es die Ausrichtung von Elementen auf der Blockachse innerhalb ihrer Rasternbereiche.
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 untenstehende interaktive Beispiel 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üsselwortes hängt vom Layout-Modus ab, in dem wir uns befinden:
- In absolut positionierten Layouts verhält sich das Schlüsselwort wie
startbei ausgetauschten 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. - Bei Flex-Elementen verhält sich das Schlüsselwort wie
stretch. - Bei Grid-Elementen führt dieses Schlüsselwort zu einem Verhalten, das dem von
stretchähnelt, mit Ausnahme von Boxen mit einem Seitenverhältnis oder einer intrinsischen Größe, bei denen 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 werden innerhalb der Zeile auf der Kreuzachse zentriert. Wenn die Kreuzgröße eines Elements größer ist als der Flex-Container, wird es gleichmäßig in beide Richtungen überlaufen.
start-
Die Elemente werden dicht nebeneinander Richtung Startkante des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
end-
Die Elemente werden dicht nebeneinander Richtung Endkante des Ausrichtungscontainers auf der entsprechenden Achse gepackt.
self-start-
Die Elemente werden dicht zur Kante der Startseite des Ausrichtungscontainers des Elements auf der entsprechenden Achse gepackt.
self-end-
Die Elemente werden dicht zur Kante der Endseite des Ausrichtungscontainers des Elements 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 seiner Kreuzstart-Margen-Kante und seiner Baseline wird mit der Kreuzstart-Kante der Zeile gespült.
stretch-
Wenn die Kreuzgröße des Elements
autoist, wird die verwendete Größe auf die Länge gesetzt, die erforderlich ist, um den Container so weit wie möglich auszufüllen, wobei die Breiten- und Höhenbeschränkungen des Elements respektiert werden. 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-
Im Fall von ankerpositionierten Elementen richtet es die Elemente im Block-Richtung zum Mittelpunkt des zugehörigen Ankerelements aus. Siehe Zentrieren auf dem Anker mit
anchor-center. safe-
Wird zusammen mit einem Ausrichtungsschlüsselwort verwendet. Wenn das gewählte Schlüsselwort bedeutet, dass das Element über 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. Unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers und ob ein Überlauf, der zu Datenverlust führt, auftreten kann, wird der gegebene Ausrichtungswert berücksichtigt.
Es gibt auch zwei Werte, die für Flexbox definiert wurden, da sie auf Konzepten der Flex-Modell-Achsen basieren, die auch in Grid-Layouts funktionieren:
flex-start-
Wird nur im Flex-Layout verwendet und richtet die Flex-Elemente bündig an der Hauptstart- oder Kreuzstartseite des Flex-Containers aus. Wenn außerhalb eines Flex-Formatierungskontexts verwendet, verhält sich dieser Wert wie
start. flex-end-
Wird nur im Flex-Layout verwendet und richtet die Flex-Elemente bündig an der Hauptend- oder Kreuzendseite des Flex-Containers aus. Wenn außerhalb eines Flex-Formatierungskontexts 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
align-items =
normal |
stretch |
<baseline-position> |
[ <overflow-position>? <self-position> ] |
anchor-center |
dialog
<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 der display des Containers zwischen grid und flex. Ein zweites Menü ermöglicht die Änderung des Wertes der align-items Eigenschaft des Containers.
CSS
Wir stylen den Container und die Elemente in einer Weise, die sicherstellt, 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 Randfarben, um einen zusätzlichen Indikator dafür zu bieten, 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>-Kindern ein. Das HTML für das Formular und das JavaScript, das die Klasse des Containers ändert, wurde der Kürze halber versteckt.
<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
Loading…