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

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

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üsselwortes hängt vom Layout-Modus ab, in dem wir uns befinden:

  • In absolut positionierten Layouts verhält sich das Schlüsselwort wie start bei ausgetauschten 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, das dem von stretch ähnelt, mit Ausnahme von 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 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 auto ist, 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 auf flex-start zurück und auf self-start oder self-end, wenn das align-content des Containers first baseline (oder baseline) oder last baseline ist.

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

Anfangswertnormal
Anwendbar aufalle Elemente
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

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.

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. Das HTML für das Formular und das JavaScript, das die Klasse des Containers ändert, wurde der Kürze halber versteckt.

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