Grid gallery dinamica in Webflow (senza codice)

Intermedio 22:58 webflowcmsgallerylayoutattributesno-code

Costruisci una grid gallery guidata dal CMS in Webflow dove ogni immagine mantiene il suo vero rapporto d'aspetto, senza ritagli — imposta le colonne per breakpoint con qualche attributo.

Punti chiave

  • object-fit: cover è lo strumento sbagliato per una gallery vera — ritaglia le immagini. La soluzione è dimensionare ogni immagine in base alle sue proporzioni, così ogni dettaglio resta visibile.
  • Dentro una riga, la larghezza di ogni immagine è il suo rapporto d''aspetto diviso per la somma di tutti i rapporti d''aspetto di quella riga, moltiplicato per lo spazio disponibile (100% meno i gap).
  • Le larghezze delle immagini non le imposti mai tu — la larghezza nel Designer (tienila sul ~40–45%) serve solo a evitare che gli elementi si impilino mentre lavori; sul sito live lo script la sovrascrive con il valore calcolato.
  • Il numero di colonne fa cascade come gli stili di Webflow: un valore impostato su un breakpoint più grande scende a quelli più piccoli finché non lo sovrascrivi, e il default è due colonne ovunque.
  • Quando l''ultima riga non è piena, il codice fa finta che gli slot vuoti contengano immagini con lo stesso rapporto d''aspetto (o quello medio) — così un''immagine avanzata da sola prende una larghezza naturale invece di stiracchiarsi su tutta la riga.

Capitoli del video

  1. 00:00 Intro
  2. 01:51 Il problema
  3. 02:58 Panoramica sulla struttura di base
  4. 04:48 Il setup e gli attributi di configurazione
  5. 11:51 Showcase #1: 1 collection list con elementi lightbox
  6. 13:15 Valori di default degli attributi
  7. 14:00 Aggiungere le animazioni
  8. 16:52 Elementi insufficienti a riempire l'ultima riga
  9. 18:32 Showcase #2: 2 collection list con elementi lightbox
  10. 20:54 Showcase #3: 1 lista statica di immagini
  11. 22:24 Outro

Puoi costruire una grid gallery dinamica e guidata dal CMS in Webflow dove ogni immagine mantiene il suo rapporto d’aspetto esatto — niente ritagli, niente object-fit: cover, niente tagliato ai bordi. Puntala su una collection del CMS (o anche solo su una manciata di immagini statiche), dille quante colonne vuoi a ogni breakpoint, e al resto pensa il layout.

Il trucco a cui ricorrono quasi tutti i tutorial — object-fit: cover — taglia le immagini per farle entrare nella griglia. Va benissimo per le thumbnail, ma è la mossa sbagliata per una gallery vera, dove ogni dettaglio del lavoro è tutto il punto. Questa soluzione dimensiona invece ogni immagine in base alle sue proporzioni, così uno scatto largo in orizzontale e uno alto in verticale possono condividere la stessa riga restando entrambi perfettamente intatti.

È un componente solo-attributi: il codice è già scritto e arriva con il cloneable, quindi tutto ciò che fai è mettere qualche attributo sugli elementi giusti. Funziona con CMS o immagini statiche, con immagini semplici o lightbox, e puoi far girare quante gallery vuoi in una sola pagina.

Come funziona

La matematica dietro. Prendi una riga di, diciamo, tre immagini. Per ognuna lo script misura il rapporto d’aspetto (larghezza ÷ altezza), poi li somma tutti e tre. Ogni immagine riceve una porzione della riga pari al proprio rapporto diviso per quella somma — un numero minore di uno. Moltiplica quella porzione per lo spazio effettivamente disponibile (il 100% della riga meno i gap tra le immagini) e ottieni una larghezza che mantiene intatte le proporzioni dell’immagine mentre la riga resta perfettamente riempita. Le immagini più larghe ottengono colonne più larghe, quelle più alte colonne più strette, in automatico.

Cosa stili davvero. Le larghezze delle immagini non le imposti tu. Nel Designer dai all’elemento della gallery una larghezza intorno al 40–45% — solo perché gli elementi non si accavallino mentre lavori — e lo script la sovrascrive con il valore calcolato una volta che la pagina è live. Non scendere troppo sotto il 40%, però: Webflow sceglie quale misura di immagine responsive generare in base alla larghezza che vede nel Designer, quindi una larghezza minuscola gli fa servire un file piccolo e pixelato.

Colonne per breakpoint. Dichiari il numero di colonne con columns-desktop, columns-tablet, columns-landscape e columns-portrait sul wrapper della gallery. Fanno cascade esattamente come gli stili di Webflow: qualsiasi cosa imposti per un breakpoint più grande scende a quelli più piccoli finché uno di loro non fissa il proprio numero. Non impostare nulla e ogni breakpoint prende due colonne.

I due casi limite che gestisce per te. Primo, l’ultima riga. Quando le immagini non si dividono in modo esatto per il numero di colonne, un’unica immagine avanzata non ha nulla con cui essere dimensionata — così il codice inventa immagini fantasma con lo stesso rapporto d’aspetto (o, per due avanzi, la media dei due) e dimensiona quelle reali come se la riga fosse piena. Secondo, il flicker: le larghezze si possono calcolare solo una volta che ogni immagine è caricata, quindi c’è un breve lampo al primo paint. Coprilo con un semplice fade al caricamento della pagina sul wrapper della gallery, e volendo un’animazione allo scroll-into-view su ogni elemento per dare un po’ di vita.

Come si usa

  1. Clona il progetto. Lo script, gli attributi e una gallery di esempio funzionante arrivano tutti nel cloneable di Webflow linkato qui sotto. Parti da lì, così i nomi degli attributi combaciano con il codice fin da subito.

  2. Prepara i contenuti. Per una gallery da CMS, usa una collection con un campo multi-immagine e collega una collection list. Per le immagini statiche, va benissimo un semplice wrapper di immagini — non deve per forza venire dal CMS.

  3. Marca il wrapper della gallery. Sulla collection list (o sul wrapper statico) imposta display: flex, direzione row e un gap a piacere, poi aggiungi fc-gallery="list".

  4. Marca ogni elemento. Sull’elemento della gallery — la collection item, o ogni wrapper d’immagine statico — aggiungi fc-gallery="item", e dagli nel Designer una larghezza intorno al 40–45% così gli elementi non si impilano mentre progetti. Sul sito live lo script sostituisce quella larghezza.

  5. Gestisci lightbox e immagini. Se usi un lightbox, imposta il suo display su block (di default è inline-block) così riempie l’elemento, collega ognuno alla sua immagine e dai loro un nome di gruppo condiviso così si sfogliano insieme. Imposta l’immagine stessa su display: block e width: 100%.

  6. Scegli le colonne. Sul wrapper della gallery aggiungi columns-desktop, columns-tablet, columns-landscape e/o columns-portrait con i valori che vuoi. Ricorda che fanno cascade verso il basso, e lasciarli tutti via ti dà due colonne ovunque.

  7. Ammorbidisci il caricamento (opzionale). Aggiungi un’interazione al caricamento della pagina che fa il fade del wrapper della gallery da opacity 0 a 100% per nascondere il flicker del calcolo iniziale, e uno slide/fade allo scroll-into-view su ogni elemento per far sentire viva la griglia.

  8. Riusala liberamente. Duplica la gallery per un secondo layout con un diverso setup di colonne, o metti altre gallery su altre pagine — ognuna legge i propri attributi in modo indipendente.

Guida alla configurazione

Attributo Valori Default Cosa fa
fc-gallery list | item Marca la gallery. Metti list sulla collection list (o sul wrapper statico) che contiene le immagini, e item su ogni elemento della gallery al suo interno. Allo script servono entrambi per trovare la gallery e disporla.
columns-desktop un numero 2 Quante colonne ha la gallery sul breakpoint desktop. Qualsiasi valore imposti qui fa cascade verso i breakpoint più piccoli finché uno di loro non ne definisce uno proprio.
columns-tablet un numero Sovrascrive il numero di colonne sul breakpoint tablet. Lascialo via per ereditare il valore desktop che scende dall''alto.
columns-landscape un numero Sovrascrive il numero di colonne sul breakpoint landscape. Lascialo via per ereditare ciò che scende dai breakpoint superiori.
columns-portrait un numero Sovrascrive il numero di colonne sul breakpoint portrait. Lascialo via per ereditare il valore dal breakpoint sopra.

Risorse

Domande frequenti

Come faccio una gallery di immagini in Webflow che mantiene il rapporto d'aspetto senza ritagliare?
Lascia perdere object-fit: cover, che taglia le immagini per farle entrare. Dimensiona invece ogni foto a partire dal suo rapporto d''aspetto rispetto alle altre della sua riga, così riempie la sua porzione di larghezza e resta intera. Questo componente fa quel calcolo al posto tuo, così uno scatto largo e uno alto possono stare fianco a fianco senza che nulla venga tagliato.
Posso impostare un numero di colonne diverso per ogni breakpoint?
Sì. Aggiungi columns-desktop, columns-tablet, columns-landscape e columns-portrait al wrapper della gallery. Qualsiasi valore imposti fa cascade verso i breakpoint più piccoli finché uno di loro non ne definisce uno proprio, e se non ne imposti nessuno il layout torna a due colonne ovunque.
Funziona con immagini statiche o solo con le collection del CMS?
Entrambe. Il layout legge da qualsiasi wrapper che marchi come gallery, quindi funziona con una collection list del CMS, con un semplice set di immagini statiche, e con o senza lightbox — puoi persino far girare più gallery indipendenti nella stessa pagina.
Perché le immagini della gallery sembrano pixelate dopo il publish?
Webflow decide quale misura di immagine responsive generare in base alla larghezza che vede nel Designer, quindi un elemento molto stretto gli fa servire un file piccolo. Tieni la larghezza dell''elemento della gallery intorno al 40–45% nel Designer e lo script la ridimensionerà comunque correttamente sul sito live.
Cosa succede quando l''ultima riga non ha abbastanza immagini per riempirsi?
Il codice riempie gli slot vuoti con immagini fantasma che condividono lo stesso rapporto d''aspetto (o quello medio) di quelle reali. Così un''unica immagine avanzata prende una larghezza naturale invece di stiracchiarsi su tutta l''ultima riga.

← Torna al corso

Fa parte anche di questi corsi