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

Das interaktive Beispiel unten verwendet Grid-Layout, um einige der Werte dieser Eigenschaft zu demonstrieren.

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 als ein oder zwei der folgenden Schlüsselwortwerte angegeben:

normal

Die Wirkung dieses Schlüsselwortes hängt vom Layout-Modus 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.
  • Für Flex-Elemente verhält sich das Schlüsselwort wie stretch.
  • Für Grid-Elemente führt dieses Schlüsselwort zu einem ähnlichen Verhalten wie stretch, außer für Boxen mit einem Seitenverhältnis oder einer intrinsischen Größe, wo es sich wie start verhält.
  • Die Eigenschaft gilt nicht für Block-Elemente und für Tabellenzellen.
center

Die Margins der Flex-Elemente werden innerhalb der Zeile 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 dicht aneinander zur Startkante des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

end

Die Elemente werden dicht aneinander zur Endkante des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

self-start

Die Elemente werden dicht an die Kante auf der Startseite des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

self-end

Die Elemente werden dicht an die Kante auf der Endseite des Ausrichtungscontainers auf der entsprechenden Achse gepackt.

baseline, first baseline, last baseline

Alle Flex-Elemente sind so ausgerichtet, dass ihre Flex-Container Baselines übereinstimmen. Das Element mit dem größten Abstand zwischen seinem cross-start Margin-Rand und seiner Baseline wird mit dem cross-start Rand des Liniebündels verbunden.

stretch

Wenn die Quergröße des Elements auto ist, wird die verwendete Größe auf die Länge gesetzt, die erforderlich ist, um den Container so gut wie möglich zu füllen, unter Berücksichtigung der Breiten- und Höhenbeschränkungen des Elements. Wenn das Element nicht automatisch skaliert wird, 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 ankerverankerten Elementen werden die Elemente zum Zentrum des zugehörigen Ankerelements in Blockrichtung ausgerichtet. 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 den Ausrichtungscontainer überläuft und Datenverlust verursacht, wird das Element stattdessen so ausgerichtet, als ob der Ausrichtungsmodus start wäre.

unsafe

Wird zusammen mit einem Ausrichtungsschlüsselwort verwendet. Unabhängig von den relativen Größen des Elements und des Ausrichtungscontainers und ob überlaufender Datenverlust entstehen könnte, wird der angegebene Ausrichtungswert beibehalten.

Es gibt auch zwei Werte, die für Flexbox definiert wurden, da sie auf den Flexmodellachsen Konzepten basieren, die auch in Grid-Layouts funktionieren:

flex-start

Nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig gegen die Haupt-Start- oder Quer-Startseite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontexts verwendet wird, verhält sich dieser Wert wie start.

flex-end

Nur im Flex-Layout verwendet, richtet die Flex-Elemente bündig gegen die Haupt-End- oder Quer-Endseite des Flex-Containers aus. Wenn es außerhalb eines Flex-Formatierungskontexts verwendet wird, verhält sich dieser Wert wie end.

Formale Definition

Anfangswertnormal
Anwendbar aufalle Elemente
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formaler 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 |
flex-start |
flex-end

Beispiele

In diesem Beispiel haben wir einen Container mit sechs Kindern. Ein <select> Dropdown-Menü ermöglicht das Umschalten des 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 Linien oder Reihen von Elementen haben. Wir haben .flex und .grid Klassen definiert, die dem Container mit JavaScript zugewiesen 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.

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 <div> Container mit sechs verschachtelten <div> Kindern ein. Der HTML-Code für das Formular und das JavaScript, das die Klasse des Containers ändert, wurde der Kürze halber verborgen.

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

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