Pořadí flex bloků v CSS

Předpokládejme, že máme následující bloky seřazené do řady:

html<div class="parent">
  <div class="child">1</div>
  <div class="child">2</div>
  <div class="child">3</div>
  <div class="child">4</div>
  <div class="child">5</div>
</div>
css.parent {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  width: 300px;
  height: 200px;
  border: 1px solid red;
}
.child {
  width: 50px;
  height: 50px;
  border: 1px solid green;
}

Результат:

Pojďme změnit pořadí jejich zobrazení na obrazovce, aniž bychom měnili jejich pořadí v HTML kódu.

K tomu slouží vlastnost order, která nastavuje pořadí konkrétních prvků podle následujícího pravidla: ten, kdo má větší hodnotu, stojí blíže ke konci osy, a ten, kdo má menší - stojí blíže k začátku.

Hodnota vlastnosti může být kladné nebo záporné číslo. Ve výchozím nastavení všechny prvky následují za sebou, to znamená, že order je u nich nulový.

Pojďme změnit pořadí našich prvků. K tomu nastavme druhému prvku dodatečnou třídu elem a pro tuto třídu nastavme vlastnost order na hodnotu 1:

css.elem {
  order: 1;
  border: 1px solid red;
}

Protože všechny prvky budou mít ve výchozím nastavení pořadí 0, a náš druhý prvek bude mít pořadí větší než ostatní, bude se nacházet za nimi:

Nyní nastavme zápornou hodnotu -1:

css.elem {
  order: -1;
  border: 1px solid red;
}

V tomto případě se náš blok přesune na začátek osy:

Задание 1

Samostatně vyzkoušejte fungování této vlastnosti pro různá směrování osy.