Ordine
Concetto di ordine nel Flexbox
Nel Flexbox l’ordine visivo degli elementi può essere modificato indipendentemente dall’ordine nel DOM. TailwindCSS espone questa funzionalità tramite le utility order-*, che mappano direttamente la proprietà CSS order.
L’ordine influisce solo sul layout visivo e non modifica:
- l’ordine reale degli elementi nel DOM
- la navigazione tramite tastiera
- la lettura da parte degli screen reader
Per questo motivo va usato con attenzione.
Valore di default
Tutti gli elementi flex hanno order: 0 di default.
In TailwindCSS:
order-0→ order: 0
Se nessuna utility order-* è applicata, l’ordine visivo segue quello del markup HTML.
Utility order positive e negative
TailwindCSS fornisce una scala di valori predefiniti.
Utility disponibili:
order-1→ order: 1order-2→ order: 2order-3→ order: 3order-4→ order: 4order-5→ order: 5order-6→ order: 6order-7→ order: 7order-8→ order: 8order-9→ order: 9order-10→ order: 10order-11→ order: 11order-12→ order: 12
Valori negativi:
-order-1→ order: -1-order-2→ order: -2-order-3→ order: -3-order-4→ order: -4-order-5→ order: -5-order-6→ order: -6-order-7→ order: -7-order-8→ order: -8-order-9→ order: -9-order-10→ order: -10-order-11→ order: -11-order-12→ order: -12
Gli elementi con valore più basso vengono visualizzati prima.
Utility speciali
Tailwind include utility dedicate a casi comuni.
-
order-first→ order: -9999
Forza l’elemento a comparire per primo -
order-last→ order: 9999
Forza l’elemento a comparire per ultimo -
order-none→ order: 0
Ripristina il comportamento di default
Funzionamento pratico dell’ordine
Regole fondamentali:
- Gli elementi sono ordinati in base al valore numerico di
order - Valori più bassi vengono posizionati prima
- Elementi con lo stesso valore mantengono l’ordine nel DOM
Esempio concettuale:
- Elemento A → order: 0
- Elemento B → order: -1
- Elemento C → order: 1
Ordine visivo risultante: B → A → C
Uso con layout responsive
Le utility order-* possono essere combinate con i breakpoint.
Esempio:
order-2 md:order-1order-last lg:order-first
Questo permette di:
- cambiare la disposizione degli elementi tra mobile e desktop
- adattare la gerarchia visiva in base allo spazio disponibile
- mantenere un DOM semanticamente corretto
Ordine e direzione del Flexbox
L’ordine è indipendente da:
flex-rowflex-row-reverseflex-colflex-col-reverse
Prima viene calcolato l’ordine degli elementi, poi viene applicata la direzione del flex container.
Combinare order-* con flex-row-reverse o flex-col-reverse può rendere il layout difficile da comprendere e mantenere.
Ordine e accessibilità
Aspetti critici:
- L’ordine di tabulazione segue il DOM, non l’ordine visivo
- Gli screen reader leggono in base al markup HTML
- Cambiare radicalmente l’ordine visivo può confondere l’utente
Best practice:
- Usare
order-*solo per piccoli aggiustamenti visivi - Non usare
order-*per correggere una struttura HTML sbagliata - Mantenere una gerarchia logica coerente nel DOM
Casi d’uso comuni
Esempi tipici:
- Spostare un’immagine sotto il testo su mobile
- Portare una call-to-action in alto su schermi piccoli
- Riordinare colonne senza duplicare markup
- Gestire layout complessi senza JavaScript
Quando evitare order
Situazioni da evitare:
- Navigazioni principali
- Form complessi
- Contenuti con forte dipendenza sequenziale
- Layout in cui l’ordine ha valore semantico
In questi casi è preferibile:
- ristrutturare il markup
- usare layout alternativi
- duplicare il contenuto se necessario