Ce face order
Copiii unui container flex sau grid apar implicit în ordinea din HTML. order primește un număr întreg (implicit 0): elementele se așază crescător după acest număr, iar la valori egale rămâne ordinea din HTML.
Un număr negativ (-1) mută elementul înaintea celorlalte, un număr mai mare îl mută la final. Este util când pe telefon vrei altă ordine decât pe desktop, de exemplu imaginea deasupra textului.
Atenție: order schimbă doar ce se vede. Cititoarele de ecran și navigarea cu tasta Tab urmează în continuare ordinea din HTML, așa că nu-l folosi pentru a reorganiza conținut important.
Valori uzuale
| Valoare | Descriere |
|---|---|
0 |
Valoarea implicită pentru toate elementele. |
număr negativ |
Elementul apare înaintea celor cu valoare mai mare. |
număr pozitiv |
Elementul apare după cele cu valoare mai mică. |
Exemple
Exemplul 1: Imaginea deasupra textului doar pe telefon
În HTML textul este primul (bun pentru SEO și cititoare de ecran); pe ecran îngust, imaginea urcă deasupra.
.prezentare {
display: flex;
gap: 24px;
}
@media (max-width: 600px) {
.prezentare {
flex-direction: column;
}
.prezentare img {
order: -1;
}
}
Efect vizual în browser
Pe desktop, textul despre cafeneaua din Cluj este în stânga și poza în dreapta. Pe telefon, poza apare sus, iar textul dedesubt.
Exemplul 2: Produsul recomandat mutat la începutul listei
Fără să schimbi ordinea din baza de date, cardul marcat „recomandat” apare primul în grilă.
.grila-produse {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.grila-produse .recomandat {
order: -1;
border: 2px solid #16a34a;
}
Efect vizual în browser
Abonamentul „Familie – 59 lei/lună”, al treilea în HTML, apare primul în grilă, cu chenar verde.
Greșeli frecvente
- Reordonarea linkurilor sau a câmpurilor de formular cu
order; focusul cu Tab sare „aiurea” pe ecran, pentru că urmează ordinea din HTML. - Aplicarea lui
orderpe un element care nu este copil direct al unui container flex sau grid; proprietatea nu are efect în fluxul normal.
Comenzi înrudite
display: flex: Transformă elementul într-un container flexibil; toți copiii direcți devin elemente flex așezate automat în linie.flex-direction: Stabilește axa principală pe care sunt așezate elementele: pe rând (orizontal) sau pe coloană (vertical).display: grid: Transformă elementul într-un container grilă bidimensional, capabil să controleze simultan atât rândurile, cât și coloanele.grid-auto-flow, grid-auto-rows și grid-auto-columns: Controlează cum sunt așezate automat elementele în grilă și ce mărime au rândurile și coloanele create implicit.