19/12/2024
Ottimizza le tue immagini con l'attributo 'srcset' in HTML5!
Utilizza l'attributo 'srcset' per il caricamento delle immagini responsive e rendi il tuo sito più veloce e ottimizzato.
Con 'srcset', puoi fornire diverse versioni della stessa immagine, in modo che i dispositivi carichino automaticamente quella più adatta, migliorando così le prestazioni e l'esperienza utente.
Un esempio:
Cosa fa l'attributo 'srcset'?
L’attributo 'srcset' permette di specificare una lista di immagini alternative, insieme a una descrizione delle loro dimensioni. In base alla risoluzione o alla densità del display dell'utente, il browser sceglierà l'immagine più appropriata da caricare. Questo migliora l'efficienza del caricamento, riducendo i tempi di download e ottimizzando la qualità dell'immagine per il dispositivo.
Nell'esempio proposto
- src: è l'immagine di fallback, ossia quella che verrà caricata se il browser non supporta 'srcset' o non trova immagini adatte
- srcset: definisce un elenco di immagini con le dimensioni relative specificate in pixel (con w per la larghezza)
per es: immagine-media.jpg 1000w: questa immagine è larga 1000 pixel
- alt: testo alternativo che descrive l’immagine per motivi di accessibilità e SEO
Come funziona?
Il browser utilizza il valore di 'srcset' in combinazione con le dimensioni effettive del display dell’utente per decidere quale immagine caricare. Le variabili principali che influenzano la scelta sono:
larghezza del viewport (espressa in pixel).
densità del display (espressa come rapporto tra i pixel del dispositivo e quelli CSS, ad esempio 1x, 2x o 3x per i display Retina).
Un monitor con 800px di larghezza caricherà probabilmente immagine-piccola.jpg (500w), perché è la più vicina al valore richiesto.
Un dispositivo ad alta densità (es. smartphone con display Retina, densità 2x) e larghezza del viewport di 400px potrebbe caricare immagine-media.jpg (1000w), perché serve un’immagine con più dettagli.
E' il browser che decide l'immagine più adatta...
Come migliorare ulteriormente?
Puoi aggiungere anche l’attributo 'sizes' per specificare in modo più dettagliato come dimensionare le immagini in base al layout.
- sizes indica lo spazio disponibile (in viewport width, vw) per l’immagine.
Fino a 600px di larghezza: l'immagine occupa tutto il viewport (100vw).
Fino a 1200px: occupa metà del viewport (50vw).
Altrimenti, occupa un terzo del viewport (33vw).
Così il browser può scegliere ancora più accuratamente quale immagine caricare!