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

View in English Always switch to English

order

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⁩.

Die order CSS-Eigenschaft legt die Reihenfolge fest, in der ein Element in einem Flex- oder Grid-Container angeordnet wird. Elemente in einem Container werden nach aufsteigendem order-Wert und dann nach ihrer Quellcode-Reihenfolge sortiert. Elementen, denen kein expliziter order-Wert zugewiesen wird, erhalten den Standardwert 0.

Probieren Sie es aus

order: 0;
order: 3;
order: -1;
order: 2;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">Box 1:</div>
  <div style="order: 1">Box 2: <code>order: 1;</code></div>
  <div style="order: 2">Box 3: <code>order: 2;</code></div>
  <div style="order: 2">Box 4: <code>order: 2;</code></div>
  <div style="order: 3">Box 5: <code>order: 3;</code></div>
</section>
.default-example {
  max-height: 300px;
  display: flex;
  flex-flow: column;
}

.default-example > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  margin: 0.5rem;
  padding: 0.5rem;
  flex: 1;
}

#example-element {
  background-color: rgb(255 0 200 / 0.2);
  border: 3px solid rebeccapurple;
}

#example-element::after {
  content: attr(style);
  outline: 2px dashed;
  font-family: monospace;
}

In der obigen Demo wählen Sie die Optionen auf der linken Seite, um den Wert der order-Eigenschaft des rosa Kastens zu ändern. Den hellblauen Kästchen wurden feste order-Werte zugewiesen.

Beachten Sie die Wirkung der Quellreihenfolge. Zum Beispiel, wenn order: 2; ausgewählt ist, wird der rosa Kasten vor den beiden blauen Kästen mit order: 2; platziert. Das liegt daran, dass der rosa Kasten vor den blauen Kästen im Quellcode erscheint.

Syntax

css
/* <integer> values */
order: 5;
order: -5;

/* Global values */
order: inherit;
order: initial;
order: revert;
order: revert-layer;
order: unset;

Da order nur die visuelle Reihenfolge von Elementen und nicht deren logische oder Tab-Reihenfolge beeinflussen soll, darf sie nicht in nicht-visuellen Medien wie Speech verwendet werden.

Definiert im CSS display-Modul, beeinflusst diese Eigenschaft nur Grid- und Flex-Elemente. Wenn order auf ein Element eingestellt wird, dessen übergeordnete display-Eigenschaft keinen Flex- oder Grid-Container erstellt, hat das keine Wirkung.

Werte

<integer>

Repräsentiert die Ordnungsgruppe, die vom Element verwendet werden soll.

Barrierefreiheit

Durch die Verwendung der order-Eigenschaft entsteht ein Unterschied zwischen der visuellen Darstellung von Inhalten und der DOM-Reihenfolge. Dies wirkt sich nachteilig auf sehbehinderte Benutzer aus, die mit Hilfe von unterstützender Technologie wie einem Screenreader navigieren. Wenn die visuelle Reihenfolge von der DOM-Reihenfolge abweicht, haben Ihre Benutzer unterschiedliche Erfahrungen, je nachdem, wie sie auf Ihre Inhalte zugreifen.

Formale Definition

Anfangswert0
Anwendbar aufFlex items, grid items, and absolutely-positioned flex and grid container children
VererbtNein
Berechneter Wertwie angegeben
AnimationstypInteger

Formale Syntax

order = 
<integer>

Beispiele

Anordnen von Elementen in einem Flex-Container

In diesem Beispiel erstellen wir ein klassisches Zwei-Sidebar-Layout.

HTML

Wir fügen einen Header, einen Footer und einen Hauptinhaltbereich ein. Der Hauptinhalt enthält einen Artikel und zwei Sidebars. Beachten Sie deren Reihenfolge! Wir verwenden die CSS order-Eigenschaft, um deren visuelle Reihenfolge zu ändern.

html
<header>Header</header>
<main>
  <article>Article</article>
  <nav>Nav</nav>
  <aside>Aside</aside>
</main>
<footer>Footer</footer>

CSS

Wir gestalten den Hauptbereich mit den Eigenschaften des flexiblen Box-Layouts; indem wir display auf flex setzen, wird das <main>-Element zu einem Flex-Container. Dies erzeugt standardmäßig Flex-Elemente von gleicher vertikaler Größe. Den Sidebars wird eine absolute width zugewiesen, während das <article> allen positiven freien Raum mit einem flex-grow-Faktor, der über die flex-Abkürzung gesetzt ist, einnimmt.

Wir setzen dann unterschiedliche order-Eigenschaftswerte auf jedes der drei Kinder des Flex-Containers; das bedeutet, dass das CSS die visuelle Reihenfolge dieser Komponenten definiert, anstatt sie in der im HTML angegebenen Reihenfolge erscheinen zu lassen.

css
main {
  display: flex;
  text-align: center;
}
main > article {
  flex: 1;
  order: 2;
}
main > nav {
  width: 200px;
  order: 1;
}
main > aside {
  width: 200px;
  order: 3;
}

Ergebnis

Das <article> erscheint zuerst in der Quellreihenfolge, wird jedoch visuell in der Mitte angezeigt.

Spezifikationen

Specification
CSS Display Module Level 3
# order-property

Browser-Kompatibilität

Siehe auch