Pořadí flex bloků v CSS
Předpokládejme, že máme následující bloky seřazené do řady:
<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>
.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:
.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:
.elem {
order: -1;
border: 1px solid red;
}
V tomto případě se náš blok přesune na začátek osy:
Samostatně vyzkoušejte fungování této vlastnosti pro různá směrování osy.