Generatore CSS Grid
Strumento gratuito per provare i layout CSS Grid regolando dall'interfaccia grid-template-columns e rows, justify-items, align-items e gap, con anteprima in tempo reale. Il codice CSS generato si copia con un clic.
Costruire a mano una disposizione CSS Grid
CSS Grid è il metodo di disposizione bidimensionale, che governa righe e colonne insieme. Questo strumento vi lascia commutare grid-template-columns e rows, justify-items, align-items e gap sullo schermo, accertare l'esito via via e ricopiare il CSS ottenuto.
Scegliere fra questo e Flexbox riesce facile se si ragiona in termini di uno o due assi. Per disporre elementi su una sola riga Flexbox basta; per una disposizione in cui righe e colonne debbano allinearsi insieme, Grid si presta meglio. La forza propria di Grid è l'unità fr, che esprime una quota dello spazio rimanente: scrivete 1fr 2fr e la larghezza che avanza si divide uno a due. L'altra cosa che merita di essere tenuta a mente è la forma repeat(auto-fit, minmax(200px, 1fr)). Essa sola dà una disposizione il cui numero di colonne cresce e cala con la larghezza, senza una sola interrogazione di media.
Come si usa
- Partite da una preimpostazione Le disposizioni consuete — tre colonne, intestazione con barra laterale — sono a portata di mano.
-
Mutate le definizioni di colonne e righe
Usare
frconsente di spartire per proporzione lo spazio rimanente. -
Provate le proprietà di allineamento
justify-itemsealign-itemsstabiliscono come il contenuto si collochi entro ciascuna cella. - Copiate il CSS generato Non appena la disposizione vi soddisfa, si incolla tale e quale nel vostro codice.
Consigli per sfruttarlo al meglio
- In grid-template-columns: repeat(3, 1fr) l'unità fr esprime «la quota di spazio residuo da spartirsi»: a differenza di un valore fisso in px, mantiene le proporzioni fra le colonne anche al variare della larghezza dello schermo.
- La proprietà gap si applica solo agli spazi fra righe e colonne e, a differenza di margin, non influisce sull'esterno della griglia. Si possono anche indicare valori diversi per righe e colonne (row-gap e column-gap).
- Le tracce in modalità «auto» si adattano alla dimensione reale del contenuto e sono quindi indicate per righe o colonne con immagini o quantità di testo variabili.
- Con le impostazioni per singolo elemento del tipo grid-column: span 2 si realizza facilmente un layout in cui solo l'intestazione o il piè di pagina occupano l'intera larghezza della griglia.
- Quando serve una griglia articolata è preferibile Grid; quando basta una disposizione in una sola direzione, come per una barra di navigazione, è più adatto Flexbox (vedete anche il generatore CSS Flexbox).
Quando torna utile
Nel costruire l'ossatura di un'intera pagina
Collocare intestazione, barra laterale, corpo e piè di pagina è per l'appunto ciò in cui Grid eccelle.
Nel disporre schede a griglia
Unire auto-fit a minmax fa variare il numero di colonne con la larghezza dello schermo.
Nell'allineare un modulo
Allineare le colonne di etichette e campi lascia correre dritta la verticale e si legge assai meglio.
Nell'apprendere Grid
Mutare un valore e guardarne l'esito chiarisce come righe e colonne si stabiliscano.
Termini di CSS Grid
- Contenitore a griglia
- L'elemento genitore cui si dà
display: grid. Al suo interno si definiscono righe e colonne. - Fr
- L'unità che esprime una quota dello spazio rimanente. Con
1fr 2frla larghezza che avanza si divide uno a due. - Grid-template-columns
- Definisce la successione e le larghezze delle colonne.
repeat()risparmia di riscrivere lo stesso valore. - Minmax
- La funzione che enuncia un minimo e un massimo.
minmax(200px, 1fr)significa «assicura 200 pixel e cresci se c'è posto». - Auto-fit
- La parola chiave che crea tante colonne quante ne entrano. Unita a
minmax, manda a capo senza alcuna interrogazione di media. - Gap
- Lo spazio lasciato fra righe e colonne. I due versi si possono fissare separatamente.
Domande frequenti
A proposito — CSS Grid, la seconda dimensione che Flexbox non copriva
CSS Grid Layout (nome ufficiale: CSS Grid Layout Module) è stato progettato come sistema bidimensionale in grado di definire righe e colonne insieme, a differenza di Flexbox che si concentra sulla disposizione in una sola direzione. La standardizzazione presso il W3C è iniziata verso il 2011 e nel 2017 Chrome, Firefox, Safari ed Edge lo hanno implementato quasi contemporaneamente, facendone esplodere l'adozione.
Prima di Grid, disporre l'intera pagina nella griglia «intestazione, barra laterale, contenuto, piè di pagina» — il cosiddetto layout holy grail — era possibile solo con complessi espedienti basati su float o tabelle. CSS Grid, con proprietà dichiarative come grid-template-columns, grid-template-rows e grid-template-areas, ha ridotto quel classico schema a poche righe di CSS.
Oggi molti progetti costruiti attorno a righe e colonne — interfacce di cruscotti, gallerie di immagini, impaginazioni in stile rivista — sono realizzati con CSS Grid. Anche «subgrid», che permette a una griglia annidata di ereditare le tracce del genitore, è ormai supportato dai browser principali e rende più semplice mantenere la coerenza nei layout complessi.
Nella pratica si è affermata una divisione dei compiti: Grid per l'ossatura della pagina, Flexbox per la disposizione degli elementi dentro i componenti. Non sono tecnologie in concorrenza ma strumenti complementari, forti rispettivamente nell'allineamento monodimensionale e nella griglia bidimensionale, e usarli insieme nella stessa pagina è anzi lo schema progettuale abituale.