order în CSS

Schimbă ordinea vizuală a unui element într-un container flex sau grid, fără să modifice HTML-ul.

Sintaxă CSS
order: 0;   /* implicit */
order: -1;  /* mută elementul la început */
order: 2;

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 order pe 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.