Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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-Eigenschaft align-items legt den Wert von align-self für alle direkten Kindelemente als Gruppe fest. In Flexbox steuert sie die Ausrichtung der Elemente auf der Querachse. Im Grid-Layout steuert sie die Ausrichtung der Elemente auf der Blockachse innerhalb ihrer Grid-Bereiche.

Das folgende interaktive Beispiel verwendet ein Grid-Layout, um einige Werte dieser Eigenschaft zu veranschaulichen.

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

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

Diese Eigenschaft wird mit einem oder zwei der folgenden Schlüsselwortwerte angegeben:

normal

Die Wirkung dieses Schlüsselworts hängt vom Layoutmodus ab:

  • In Layouts mit absoluter Positionierung verhält sich das Schlüsselwort bei absolut positionierten ersetzten Boxen wie start und bei allen anderen absolut positionierten Boxen wie stretch.
  • Bei der statischen Position in Layouts mit absoluter Positionierung 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 ähnlichen Verhalten wie stretch. Bei Boxen mit einem Seitenverhältnis oder einer intrinsischen Größe verhält es sich jedoch wie start.
  • Die Eigenschaft gilt weder für Boxen auf Blockebene noch für Tabellenzellen.
center

Die Margin-Boxen der Flex-Elemente werden innerhalb der Zeile auf der Querachse zentriert. Ist die Größe eines Elements auf der Querachse größer als die des Flex-Containers, ragt es in beide Richtungen gleich weit über.

start

Die Elemente werden aneinanderliegend zur Anfangskante des Ausrichtungscontainers auf der jeweiligen Achse hin angeordnet.

end

Die Elemente werden aneinanderliegend zur Endkante des Ausrichtungscontainers auf der jeweiligen Achse hin angeordnet.

self-start

Die Elemente werden bündig an der Kante des Ausrichtungscontainers angeordnet, die auf der jeweiligen Achse der Anfangsseite des Elements entspricht.

self-end

Die Elemente werden bündig an der Kante des Ausrichtungscontainers angeordnet, die auf der jeweiligen Achse der Endseite des Elements entspricht.

baseline, first baseline, last baseline

Alle Flex-Elemente werden so ausgerichtet, dass ihre Basislinien im Flex-Container übereinstimmen. Das Element mit dem größten Abstand zwischen seiner Margin-Kante am Anfang der Querachse und seiner Basislinie wird bündig an der Anfangskante der Zeile auf der Querachse ausgerichtet.

stretch

Ist die Größe des Elements auf der Querachse auto, wird die verwendete Größe auf die Länge festgelegt, die den Container unter Berücksichtigung der Breiten- und Höhenbeschränkungen des Elements möglichst vollständig ausfüllt. Hat das Element keine automatische Größe, fällt dieser Wert auf flex-start zurück. Ist align-content des Containers first baseline (oder baseline) beziehungsweise last baseline, fällt er auf self-start beziehungsweise self-end zurück.

anchor-center

Bei ankerpositionierten Elementen werden die Elemente in Blockrichtung an der Mitte des zugehörigen Ankerelements ausgerichtet. Siehe Zentrieren am Anker mit anchor-center.

safe

Wird zusammen mit einem Schlüsselwort für die Ausrichtung verwendet. Wenn das gewählte Schlüsselwort dazu führen würde, dass das Element über den Ausrichtungscontainer hinausragt und dadurch Daten verloren gehen, wird das Element stattdessen so ausgerichtet, als wäre der Ausrichtungsmodus start.

unsafe

Wird zusammen mit einem Schlüsselwort für die Ausrichtung verwendet. Der angegebene Ausrichtungswert wird unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers sowie von einem möglichen Überlauf mit Datenverlust angewendet.

Daneben gibt es zwei Werte, die für Flexbox definiert wurden, da sie auf Konzepten der Achsen des Flex-Modells beruhen. Sie funktionieren auch in Grid-Layouts:

flex-start

Richtet Flex-Elemente ausschließlich im Flex-Layout bündig an der Anfangsseite des Flex-Containers auf der Haupt- oder Querachse aus. Außerhalb eines Flex-Formatierungskontexts verhält sich dieser Wert wie start.

flex-end

Richtet Flex-Elemente ausschließlich im Flex-Layout bündig an der Endseite des Flex-Containers auf der Haupt- oder Querachse aus. Außerhalb eines Flex-Formatierungskontexts 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>

<baseline-position> =
[ first | last ]? &&
baseline

<overflow-position> =
unsafe |
safe

<self-position> =
center |
start |
end |
self-start |
self-end |
flow-start |
flow-end |
flex-start |
flex-end

Beispiele

In diesem Beispiel gibt es einen Container mit sechs Kindelementen. Über ein <select>-Auswahlmenü lässt sich display des Containers zwischen grid und flex umschalten. Mit einem zweiten Menü lässt sich der Wert der Eigenschaft align-items des Containers ändern.

HTML

Wir verwenden ein <div> als Container mit sechs verschachtelten <div>-Kindelementen. Der Kürze halber sind das HTML für das Formular und das JavaScript, das die Klasse des Containers ändert, 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>

CSS

Wir gestalten den Container und die Elemente so, dass zwei Zeilen mit Elementen entstehen. Wir definieren die Klassen .flex und .grid, die dem Container per JavaScript zugewiesen werden. Sie legen den Wert von display für den Container fest und ändern seine Hintergrund- und Rahmenfarben. So wird der Wechsel des Layouts zusätzlich sichtbar. Die sechs Flex-Elemente haben jeweils eine andere Hintergrundfarbe. Das vierte Element erstreckt sich über zwei Textzeilen, und das sechste hat eine größere Schrift.

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;
}

Ergebnis

Spezifikationen

Spezifikation
CSS Box Alignment Module Level 3
# align-items-property
CSS Flexible Box Layout Module Level 1
# align-items-property

Browser-Kompatibilität

Siehe auch