Bordi Interni alla Griglia in Webflow: Responsive e Accessibili

Intermedio 20:51 webflowgridcssresponsiveaccessibilitàcms

Crea bordi interni puliti tra gli elementi di una griglia in Webflow usando solo gap e background — responsive e accessibili, anche con il CMS.

Punti chiave

  • Tutto l'effetto sono solo due proprietà — un gap della griglia di 1px più un background color sulla griglia — quindi i "bordi" sono in realtà lo sfondo della griglia che traspare attraverso i sottili spazi tra le celle.
  • Siccome il bordo è lo sfondo che traspare, ogni cella deve essere completamente opaca: le immagini vogliono object-fit cover al 100% di dimensione, e le celle di testo un background solido che corrisponde all'area attorno alla griglia.
  • Togliere una colonna su un breakpoint più piccolo può lasciare una cella vuota di troppo dove traspare lo sfondo della griglia — una cella placeholder colorata come l'area circostante riempie quel buco.
  • Una cella placeholder vuota è invisibile ai tuoi occhi ma non agli screen reader, quindi marcala con aria-hidden="true" e le tecnologie assistive salteranno del tutto quella scatola senza senso.
  • In una griglia CMS non puoi inserire un placeholder statico, quindi aggiungi un elemento placeholder alla collezione e lo governi con visibilità condizionale e una regola di ordinamento che lo spinge sempre in fondo.

Capitoli del video

  1. 00:00 Intro
  2. 01:21 Caso #1 — griglia di immagini
  3. 04:32 Caso #2 — griglia di elementi di testo
  4. 06:14 Responsività
  5. 10:48 Accessibilità
  6. 13:23 Caso #3 — griglia dinamica (CMS): la struttura
  7. 14:40 Caso #3 — griglia dinamica (CMS): responsività e accessibilità
  8. 19:44 Outro

Aggiungi bordi interni puliti e consistenti a una griglia in Webflow senza una singola combo class né workaround — bastano un gap minimo e un background color. Webflow non ha un controllo “bordo interno” nativo, ma non ti serve: riduci il gap della griglia a un filo, colora la griglia dietro, e gli spazi tra le celle si leggono come linee divisorie nette. Funziona con immagini, testo e collezioni CMS allo stesso modo.

Il punto è che quelle linee sono in realtà lo sfondo della griglia che traspare, quindi la tecnica vive o muore sul rendere ogni cella completamente opaca e ogni spazio residuo riempito. È lì che sta il vero lavoro — gestire le proporzioni diverse delle immagini, la cella vuota che ottieni quando togli una colonna, e l’accessibilità delle scatole invisibili che aggiungi per rattopparla.

Niente di pesante. Poche proprietà fanno la parte visiva, e un paio di scelte semplici tengono tutto responsive e amichevole con gli screen reader.

Come funziona

Il bordo è un’illusione. Imposti il gap della griglia a 1px invece dei soliti 16, poi dai un background-color alla griglia stessa. Ora l’unico punto in cui quel colore è visibile sono i solchi da 1px tra le celle — e questo si legge come un bordo sottile e perfettamente uniforme tra ogni elemento. Cambi il gap e cambi lo spessore del bordo; cambi lo sfondo e cambi il colore della linea. Questa è tutta la base.

Siccome il “bordo” è solo lo sfondo della griglia che traspare, l’effetto si rompe nel momento in cui una cella non è completamente opaca. Le immagini con proporzioni diverse non riempiono le loro celle in modo uniforme, quindi i solchi sembrano irregolari — la soluzione è impostare ogni immagine a width: 100%, height: 100% e object-fit: cover, così riempie la sua cella senza distorsione. Gli elementi di testo non hanno uno sfondo proprio (la loro scatola è di fatto trasparente), quindi il colore della griglia invade lo spazio dietro di loro; dare alle celle di testo un background solido che corrisponde all’area attorno alla griglia ripristina l’effetto.

La responsività è dove si concentrano i tranelli. Se passi da tre colonne a due su un breakpoint più piccolo e hai un numero dispari di elementi, l’ultima cella resta vuota e lo sfondo della griglia traspare. La rattoppi con una cella placeholder il cui sfondo corrisponde all’area circostante — ma un placeholder è un elemento in più, quindi sui breakpoint più larghi (ancora a tre colonne) sfora su una nuova riga e rivela una striscia di sfondo. La risposta è controllare il display del placeholder per breakpoint: nascondilo dove non serve, mostralo solo dove altrimenti una cella resterebbe vuota. Tieni a mente la cascata di Webflow — un valore impostato su un breakpoint più grande scende verso quelli più piccoli finché non lo sovrascrivi, quindi ricontrolla ogni breakpoint sotto a quello in cui il placeholder compare.

Quel placeholder vuoto è anche un tranello di accessibilità. È invisibile agli utenti vedenti, ma gli screen reader non ignorano in automatico le scatole vuote dentro una struttura di contenuto come una griglia — possono annunciarla come un elemento privo di significato e di contesto. Aggiungere aria-hidden="true" al placeholder dice alle tecnologie assistive di saltarlo del tutto: non annunciato, non focalizzabile. Una cosa da ricordare — quell’attributo vive sull’elemento, non sulla classe, quindi se hai un placeholder in più di una griglia devi aggiungerlo a ognuna a mano.

Le griglie CMS seguono la stessa logica con una piega: non puoi inserire un elemento statico dentro una collection list. Al suo posto aggiungi un elemento placeholder alla collezione (uno senza immagine) e risolvi tre problemi in un colpo. Per l’accessibilità, aggiungi un campo CMS plain text (per esempio uno che contiene true o false) e collega l’attributo aria-hidden dell’elemento a quel campo — false per gli elementi veri, true per il placeholder. Per nascondere lo sfondo nella cella vuota, metti un div placeholder dentro il list item e usa la visibilità condizionale per mostrarlo solo quando il campo immagine è vuoto. E per evitare che il placeholder finisca in cima, aggiungi prima una regola di ordinamento su quel campo (alfabetica, così false viene prima di true e il placeholder scende in fondo), poi metti il tuo ordinamento vero sopra.

Come si usa

  1. Clona il progetto. Prendi il cloneable Webflow — ha la griglia di immagini, quella di testo e quella CMS già pronte, così puoi smontarle e ricostruirle.

  2. Crea i bordi. Seleziona la griglia, imposta il suo gap a 1px e dalle un background-color. All’inizio scegli qualcosa di brillante (un giallo-arancio si vede bene) così osservi l’effetto comparire, poi sostituiscilo con il colore vero del bordo.

  3. Rendi opache le celle immagine. Seleziona un’immagine (possono condividere una classe), imposta width e height al 100%, poi imposta il fit su cover. Ora ogni immagine riempie la sua cella in modo pulito e i solchi restano uniformi.

  4. Rendi opache le celle di testo. Dai agli elementi di testo un background color che corrisponde all’area attorno alla griglia (bianco, nel cloneable). Senza, il colore della griglia traspare attraverso le scatole di testo trasparenti e ammazza l’effetto.

  5. Gestisci la cella vuota sui breakpoint più piccoli. Quando riduci le colonne e resta una cella dispari vuota, aggiungi un div placeholder nella griglia, dai al suo sfondo lo stesso colore dell’area circostante e imposta width/height al 100%. Poi attiva o disattiva il suo display per breakpoint — none dove non serve, block solo dove altrimenti una cella resterebbe vuota. Ricorda che la cascata scende verso il basso, quindi ricontrolla ogni breakpoint più piccolo.

  6. Rendi accessibile il placeholder. Sull’elemento placeholder, aggiungi l’attributo custom aria-hidden con valore true. Aggiungilo a ogni placeholder — si imposta sull’elemento, non sulla classe.

  7. Fallo nel CMS. Riusa la classe grid sulla collection list. Aggiungi un elemento placeholder senza immagine. Aggiungi un campo plain text per il valore di aria-hidden e collega l’attributo aria-hidden del list item a quel campo (false per gli elementi veri, true per il placeholder). Metti un div placeholder dentro il list item e usa la visibilità condizionale per mostrarlo solo quando l’immagine non è impostata. Infine, aggiungi una regola di ordinamento sul campo aria-hidden (alfabetica) così il placeholder finisce sempre per ultimo, poi metti sopra l’ordinamento che vuoi davvero.

Risorse

Domande frequenti

Come si aggiungono bordi tra gli elementi di una griglia in Webflow?
Imposta il gap della griglia a 1px e dai alla griglia un background color. I sottili spazi tra le celle rivelano quel colore, che si legge come linee divisorie pulite e ben spaziate — senza bordi veri né combo class, purché ogni cella abbia il suo sfondo opaco.
Perché lo sfondo della mia griglia Webflow traspare tra le celle?
È il trucco che funziona un po' troppo bene. Il gap espone il background color della griglia, quindi ovunque una cella sia trasparente o vuota quel colore si vede. Dai alle immagini object-fit cover al 100% di larghezza e altezza, e alle celle di testo o vuote uno sfondo solido che corrisponde all'area attorno alla griglia.
Come sistemo la cella vuota quando riduco le colonne sugli schermi piccoli?
Aggiungi un elemento placeholder nella cella che resta e dagli lo stesso sfondo dell'area circostante, così il colore del gap non si vede più. Attiva o disattiva il suo display per breakpoint, così compare solo dove altrimenti una cella resterebbe vuota.
Come rendo accessibile un div placeholder vuoto?
Aggiungici l'attributo aria-hidden="true". La scatola non ha significato, quindi questo dice a screen reader e tecnologie assistive di ignorarla — non verrà annunciata né riceverà focus. Attenzione: si imposta sull'elemento, non sulla classe, quindi aggiungilo a ogni placeholder che crei.
Posso usare questa griglia con bordi interni con i contenuti del CMS di Webflow?
Sì. Riusa la stessa classe grid sulla collection list, poi aggiungi un elemento placeholder senza immagine per riempire l'ultima cella. Collega aria-hidden a un campo CMS, mostra il riempimento solo quando l'immagine è assente con la visibilità condizionale, e aggiungi una regola di ordinamento così il placeholder finisce sempre per ultimo.

← Torna al corso

Fa parte anche di questi corsi