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 für alle direkten Kind-Elemente als Gruppe. In Flexbox steuert sie die Ausrichtung der Elemente auf der Querachse. Im Grid-Layout kontrolliert sie die Ausrichtung der Elemente 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 zeigt einige der Werte für align-items mit dem Grid- und Flex-Layout.

Syntax

css
/* 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 verwendeten Layoutmodus ab:

  • In absolut positionierten Layouts verhält sich das Schlüsselwort wie start bei ersetzten absolut positionierten Boxen und wie stretch bei 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, bei denen es sich wie start verhält.
  • Die Eigenschaft gilt nicht für Block-Level-Boxen und Tabellenzellen.
center

Die Margin-Boxen der Flex-Elemente werden innerhalb der Reihe 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 werden bündig zueinander zum Start-Rand des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

end

Die Elemente werden bündig zueinander zum End-Rand des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

self-start

Die Elemente werden bündig zum Beginn des Ausrichtungscontainers an der Startseite des Elements auf der entsprechenden Achse gepackt.

self-end

Die Elemente werden bündig zum Ende des Ausrichtungscontainers an der Endseite des Elements auf der entsprechenden Achse gepackt.

baseline, first baseline, last baseline

Alle Flex-Elemente werden so ausgerichtet, dass ihre Flex-Container-Baselines übereinstimmen. Das Element mit dem größten Abstand zwischen seinem Querstart-Rand und seiner Baseline wird mit dem Querstart-Rand der Linie bündig gemacht.

stretch

Wenn die Elemente kleiner als der Ausrichtungscontainer sind, werden automatisch dimensionierte Elemente gleichmäßig vergrößert, um den Container auszufüllen, wobei die Größen- und Höhenbeschränkungen der Elemente respektiert werden.

anchor-center

Bei anker-positionierten Elementen richtet sich die Ausrichtung der Elemente auf das Zentrum des zugehörigen Ankerelements in der Blockrichtung aus. Siehe Zentrieren auf dem Anker mit anchor-center.

safe

Wird zusammen mit einem Ausrichtungs-Schlüsselwort verwendet. Wenn das gewählte Schlüsselwort dazu führt, 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 Ausrichtungs-Schlüsselwort verwendet. Unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers und davon, ob ein Überlauf, der Datenverlust verursachen könnte, vorkommen könnte, wird der angegebene Ausrichtungswert respektiert.

Es gibt auch zwei Werte, die für Flexbox definiert wurden, da sie auf dem Konzept der Flex-Modell-Achsen basieren, welche auch in Grid-Layouts funktionieren:

flex-start

Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig zur Hauptstart- oder Querstartseite des Flex-Containers aus. Wenn er außerhalb eines Flex-Formatierungs-Kontextes verwendet wird, verhält sich dieser Wert wie start.

flex-end

Wird nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig zur Hauptend- oder Querendseite des Flex-Containers aus. Wenn er außerhalb eines Flex-Formatierungs-Kontextes verwendet wird, verhält sich dieser Wert wie end.

Formale Definition

Anfangswertnormal
Anwendbar aufalle Elemente
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

align-items = 
normal |
stretch |
<baseline-position> |
[ <overflow-position>? <self-position> ] |
anchor-center

<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 das Ändern des Werts der align-items Eigenschaft des Containers.

CSS

Wir gestalten den Container und die Elemente so, dass wir zwei Reihen oder Zeilen von Elementen haben. Wir haben die Klassen .flex und .grid definiert, die dem Container mit JavaScript 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.

css
.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. Der HTML-Code für das Formular und die JavaScript, die die Klasse des Containers ändern, wurden der Übersichtlichkeit halber ausgeblendet.

html
<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

Siehe auch