{"id":164055,"date":"2025-07-28T09:00:00","date_gmt":"2025-07-28T07:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/immagini-responsive-html-srcset-sizes-picture\/"},"modified":"2025-07-28T09:00:00","modified_gmt":"2025-07-28T07:00:00","slug":"immagini-responsive-html-srcset-sizes-picture","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/de\/immagini-responsive-html-srcset-sizes-picture\/","title":{"rendered":"Immagini Responsive in HTML: srcset, sizes e il Tag picture"},"content":{"rendered":"<p style=\"text-align: justify;\">Nel web moderno, le immagini rappresentano mediamente oltre il 50{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c} del peso totale di una pagina. Con la variet\u00e0 di dispositivi che gli utenti utilizzano \u2014 dagli smartphone con schermi da 4 pollici ai monitor 4K da 32 pollici \u2014 servire la stessa immagine a tutti \u00e8 uno spreco enorme di banda e un danno alle performance. HTML offre strumenti nativi potenti per gestire le <strong>immagini responsive<\/strong>: gli attributi <code>&lt;srcset&gt;<\/code> und <code>&lt;sizes&gt;<\/code>, e il tag <code>&lt;picture&gt;<\/code>. In questa guida completa vedremo come utilizzarli al meglio per creare siti web veloci e ottimizzati.<\/p>\n<h2>Perch\u00e9 le Immagini Responsive sono Essenziali<\/h2>\n<p style=\"text-align: justify;\">Un&#8217;immagine pensata per uno schermo desktop da 1920 pixel di larghezza pu\u00f2 pesare 500 KB o pi\u00f9. Servire questa stessa immagine a uno smartphone con uno schermo da 375 pixel \u00e8 inutile: l&#8217;utente scarica dati che non potr\u00e0 mai apprezzare visivamente. Le <strong>immagini responsive<\/strong> risolvono questo problema permettendo al browser di scegliere automaticamente la versione pi\u00f9 adatta dell&#8217;immagine in base alle caratteristiche del dispositivo.<\/p>\n<p style=\"text-align: justify;\">I vantaggi sono molteplici. Innanzitutto, le <strong>performance migliorano drasticamente<\/strong>: meno dati da scaricare significano pagine pi\u00f9 veloci. Questo impatta direttamente sui <a href=\"https:\/\/gtechgroup.it\/blog\/de\/core-web-vitals-html-lcp-cls-inp\/\">Core Web Vitals<\/a>, in particolare sulla metrica LCP (Largest Contentful Paint). In secondo luogo, il <strong>risparmio di banda<\/strong> \u00e8 significativo, soprattutto per gli utenti con connessioni mobili limitate. Infine, un sito veloce offre una migliore <strong>esperienza utente<\/strong> e viene premiato dai motori di ricerca nel posizionamento.<\/p>\n<h2>L&#8217;Attributo srcset: Descrittori di Larghezza e Densit\u00e0<\/h2>\n<p style=\"text-align: justify;\">L&#8217;attributo <code>&lt;srcset&gt;<\/code> si aggiunge al tradizionale tag <code>&lt;img&gt;<\/code> e permette di specificare una lista di immagini alternative tra cui il browser pu\u00f2 scegliere. Esistono due tipi di descrittori: quelli basati sulla <strong>larghezza<\/strong> (w) e quelli basati sulla <strong>densit\u00e0 di pixel<\/strong> (x).<\/p>\n<p style=\"text-align: justify;\">I <strong>descrittori di larghezza<\/strong> (w) indicano la larghezza reale dell&#8217;immagine in pixel. Ecco un esempio pratico:<\/p>\n<pre><code>&lt;img src=&quot;foto-800.jpg&quot;\n     srcset=&quot;foto-400.jpg 400w,             foto-800.jpg 800w,             foto-1200.jpg 1200w,             foto-1600.jpg 1600w&quot;\n     sizes=&quot;(max-width: 600px) 100vw,            (max-width: 1024px) 50vw,            33vw&quot;\n     alt=&quot;Descrizione dell&#039;immagine&quot;&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">In questo codice, il browser conosce le dimensioni di ogni file e, grazie all&#8217;attributo <code>&lt;sizes&gt;<\/code>, sa quanto spazio occuper\u00e0 l&#8217;immagine nel layout. Combinando queste informazioni con la densit\u00e0 di pixel del dispositivo e la larghezza della viewport, il browser seleziona automaticamente il file pi\u00f9 appropriato.<\/p>\n<p style=\"text-align: justify;\">I <strong>descrittori di densit\u00e0<\/strong> (x) sono pi\u00f9 semplici ma meno flessibili. Si usano principalmente per distinguere tra schermi standard e schermi Retina:<\/p>\n<pre><code>&lt;img src=&quot;logo.png&quot;\n     srcset=&quot;logo.png 1x,             logo@2x.png 2x,             logo@3x.png 3x&quot;\n     alt=&quot;Logo aziendale&quot;&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Questo approccio \u00e8 ideale per immagini a dimensione fissa come loghi e icone, dove la larghezza non cambia ma la risoluzione s\u00ec. Per immagini che si adattano al layout, i descrittori w sono la scelta migliore.<\/p>\n<h2>L&#8217;Attributo sizes: Guidare la Scelta del Browser<\/h2>\n<p style=\"text-align: justify;\">L&#8217;attributo <code>&lt;sizes&gt;<\/code> \u00e8 fondamentale quando si usano i descrittori di larghezza. Senza di esso, il browser assume che l&#8217;immagine occupi l&#8217;intera larghezza della viewport (100vw), il che porta a scelte subottimali. L&#8217;attributo accetta una lista di <strong>media condition<\/strong> seguite dalla larghezza che l&#8217;immagine occuper\u00e0 in quella condizione.<\/p>\n<p style=\"text-align: justify;\">La sintassi segue un pattern preciso: ogni condizione viene valutata nell&#8217;ordine in cui appare, e la prima che corrisponde determina la larghezza usata. L&#8217;ultimo valore, senza condizione, funge da default. Ad esempio, <code>sizes=\"(max-width: 600px) 100vw, (max-width: 1024px) 50vw, 33vw\"<\/code> indica che su schermi fino a 600px l&#8217;immagine occupa il 100{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c} della viewport, fino a 1024px il 50{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c}, e oltre il 33{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c}.<\/p>\n<p style=\"text-align: justify;\">\u00c8 importante notare che le dimensioni specificate in <code>&lt;sizes&gt;<\/code> non impostano effettivamente la larghezza dell&#8217;immagine \u2014 quello \u00e8 compito del CSS. L&#8217;attributo serve esclusivamente a <strong>informare il browser<\/strong> prima che il CSS sia stato scaricato e analizzato, permettendo una scelta anticipata del file da caricare. Per questo motivo, i valori in sizes devono riflettere accuratamente ci\u00f2 che il CSS definir\u00e0.<\/p>\n<h2>Il Tag picture: Controllo Totale e Art Direction<\/h2>\n<p style=\"text-align: justify;\">Mentre <code>&lt;srcset&gt;<\/code> und <code>&lt;sizes&gt;<\/code> permettono al browser di scegliere la risoluzione migliore della stessa immagine, il tag <code>&lt;picture&gt;<\/code> offre un controllo molto pi\u00f9 granulare. Con <code>&lt;picture&gt;<\/code> possiamo specificare immagini completamente diverse per diverse condizioni \u2014 un concetto noto come <strong>art direction<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Il tag <code>&lt;picture&gt;<\/code> funziona come un contenitore che avvolge uno o pi\u00f9 elementi <code>&lt;source&gt;<\/code> seguiti da un elemento <code>&lt;img&gt;<\/code> di fallback. Ecco un esempio di art direction:<\/p>\n<pre><code>&lt;picture&gt;\n  &lt;source media=&quot;(max-width: 599px)&quot; srcset=&quot;foto-mobile.jpg&quot;&gt;\n  &lt;source media=&quot;(max-width: 1023px)&quot; srcset=&quot;foto-tablet.jpg&quot;&gt;\n  &lt;img src=&quot;foto-desktop.jpg&quot; alt=&quot;Panorama cittadino&quot;&gt;\n&lt;\/picture&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">In questo caso, su mobile viene mostrato un ritaglio ravvicinato dell&#8217;immagine, su tablet una versione intermedia e su desktop la versione panoramica completa. Non \u00e8 una questione di risoluzione ma di <strong>composizione dell&#8217;immagine<\/strong>: la versione mobile potrebbe mostrare solo il soggetto principale, eliminando lo sfondo che non sarebbe visibile su uno schermo piccolo.<\/p>\n<h2>Formato Switching: WebP, AVIF e Fallback<\/h2>\n<p style=\"text-align: justify;\">Un altro uso fondamentale del tag <code>&lt;picture&gt;<\/code> \u00e8 il <strong>format switching<\/strong>, ovvero la possibilit\u00e0 di servire formati moderni come <strong>WebP<\/strong> und <strong>AVIF<\/strong> ai browser che li supportano, mantenendo un fallback in JPEG o PNG per i browser pi\u00f9 datati.<\/p>\n<pre><code>&lt;picture&gt;\n  &lt;source type=&quot;image\/avif&quot; srcset=&quot;foto.avif&quot;&gt;\n  &lt;source type=&quot;image\/webp&quot; srcset=&quot;foto.webp&quot;&gt;\n  &lt;img src=&quot;foto.jpg&quot; alt=&quot;Foto prodotto&quot;&gt;\n&lt;\/picture&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Il browser legge gli elementi <code>&lt;source&gt;<\/code> dall&#8217;alto verso il basso e utilizza il primo formato che supporta. AVIF offre una compressione superiore del 50{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c} rispetto al JPEG, mentre WebP offre circa il 30{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c}. Combinando il format switching con il responsive design, possiamo ottenere risultati straordinari:<\/p>\n<pre><code>&lt;picture&gt;\n  &lt;source type=&quot;image\/avif&quot;\n          srcset=&quot;foto-400.avif 400w, foto-800.avif 800w, foto-1200.avif 1200w&quot;\n          sizes=&quot;(max-width: 600px) 100vw, 50vw&quot;&gt;\n  &lt;source type=&quot;image\/webp&quot;\n          srcset=&quot;foto-400.webp 400w, foto-800.webp 800w, foto-1200.webp 1200w&quot;\n          sizes=&quot;(max-width: 600px) 100vw, 50vw&quot;&gt;\n  &lt;img src=&quot;foto-800.jpg&quot;\n       srcset=&quot;foto-400.jpg 400w, foto-800.jpg 800w, foto-1200.jpg 1200w&quot;\n       sizes=&quot;(max-width: 600px) 100vw, 50vw&quot;\n       alt=&quot;Foto del prodotto in alta qualit&agrave;&quot;&gt;\n&lt;\/picture&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Questa combinazione garantisce che ogni utente riceva il formato pi\u00f9 efficiente nella risoluzione pi\u00f9 appropriata per il proprio dispositivo, ottimizzando al massimo i tempi di caricamento.<\/p>\n<h2>Best Practice e Impatto sulle Performance<\/h2>\n<p style=\"text-align: justify;\">Per ottenere il massimo dalle immagini responsive, \u00e8 fondamentale seguire alcune <strong>best practice<\/strong>. Prima di tutto, specificate sempre gli attributi <code>&lt;width&gt;<\/code> und <code>&lt;height&gt;<\/code> sul tag <code>&lt;img&gt;<\/code>: questo permette al browser di calcolare l&#8217;aspect ratio prima del caricamento, evitando il <strong>layout shift<\/strong> (CLS). In secondo luogo, utilizzate l&#8217;attributo <code>loading=\"lazy\"<\/code> per le immagini below-the-fold, in modo che vengano caricate solo quando l&#8217;utente si avvicina ad esse durante lo scroll.<\/p>\n<p style=\"text-align: justify;\">Per le immagini critiche above-the-fold, considerate l&#8217;uso di <code>fetchpriority=\"high\"<\/code> per indicare al browser di darle la massima priorit\u00e0 nel caricamento. Al contrario, immagini decorative o meno importanti possono ricevere <code>fetchpriority=\"low\"<\/code>. Per approfondire queste tecniche di <a href=\"https:\/\/gtechgroup.it\/blog\/de\/preload-prefetch-preconnect-ottimizzare-caricamento\/\">ottimizzazione del caricamento<\/a>, vi consigliamo la nostra guida dedicata.<\/p>\n<p style=\"text-align: justify;\">Ricordate inoltre di generare le varianti delle immagini durante il processo di build o tramite un servizio CDN di image processing. Strumenti come Sharp (Node.js), ImageMagick o servizi cloud come Cloudinary e Imgix possono automatizzare completamente la generazione delle diverse risoluzioni e formati. Non dimenticate di utilizzare sempre l&#8217;attributo <code>&lt;alt&gt;<\/code> con descrizioni significative per garantire l&#8217;accessibilit\u00e0 delle vostre immagini.<\/p>\n<p style=\"text-align: justify;\">L&#8217;impatto sulle performance \u00e8 notevole: implementando correttamente le immagini responsive, \u00e8 possibile ridurre il peso delle immagini del 40-70{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c} senza alcuna perdita di qualit\u00e0 percepita dall&#8217;utente, migliorando significativamente l&#8217;esperienza di navigazione su ogni dispositivo.<\/p>\n<p style=\"text-align: justify;\">Hai bisogno di aiuto con l&#8217;ottimizzazione delle immagini responsive? <strong>G Tech Group<\/strong> offre servizi di sviluppo web professionale e consulenza tecnica. Contattaci a <strong>support@gtechgroup.it<\/strong> o via WhatsApp al <strong>0465 84 62 45<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Nel web moderno, le immagini rappresentano mediamente oltre il 50{6fb8dad3a9c483f1a21adb5997a0bd0fb65a4b2f8344003d223c5d2f2542798c} del peso totale di una pagina. Con la variet\u00e0 di dispositivi che gli utenti utilizzano&hellip;<\/p>","protected":false},"author":2,"featured_media":164235,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Immagini Responsive in HTML: srcset, sizes e picture","_seopress_titles_desc":"Scopri come implementare immagini responsive in HTML con srcset, sizes e il tag picture per ottimizzare le performance e adattare le immagini a ogni dispositivo.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"1246","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"immagini responsive, srcset HTML, tag picture, sizes attributo, responsive design","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[{"_seopress_pro_rich_snippets_type":"custom","_seopress_pro_rich_snippets_custom":"<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"HowTo\",\"name\":\"Immagini Responsive in HTML: srcset, sizes e il Tag picture\",\"description\":\"Nel web moderno, le immagini rappresentano mediamente oltre il 50% del peso totale di una pagina. Con la variet\u00e0 di dispositivi che gli utenti utilizzano\u2026\",\"step\":[{\"@type\":\"HowToStep\",\"position\":1,\"name\":\"Perch\u00e9 le Immagini Responsive sono Essenziali\",\"text\":\"Un'immagine pensata per uno schermo desktop da 1920 pixel di larghezza pu\u00f2 pesare 500 KB o pi\u00f9. Servire questa stessa immagine a uno smartphone con uno schermo da 375 pixel \u00e8 inutile: l'utente scarica dati che non potr\u00e0 mai apprezzare visivamente. Le immagini responsive risolvono questo problema permettendo al browser di scegliere automaticamente la versione pi\u00f9 adatta dell'immagine in base alle caratteristiche del dispositivo.\"},{\"@type\":\"HowToStep\",\"position\":2,\"name\":\"L'Attributo srcset: Descrittori di Larghezza e Densit\u00e0\",\"text\":\"L'attributo  si aggiunge al tradizionale tag  e permette di specificare una lista di immagini alternative tra cui il browser pu\u00f2 scegliere. Esistono due tipi di descrittori: quelli basati sulla larghezza (w) e quelli basati sulla densit\u00e0 di pixel (x).\"},{\"@type\":\"HowToStep\",\"position\":3,\"name\":\"L'Attributo sizes: Guidare la Scelta del Browser\",\"text\":\"L'attributo  \u00e8 fondamentale quando si usano i descrittori di larghezza. Senza di esso, il browser assume che l'immagine occupi l'intera larghezza della viewport (100vw), il che porta a scelte subottimali. L'attributo accetta una lista di media condition seguite dalla larghezza che l'immagine occuper\u00e0 in quella condizione.\"},{\"@type\":\"HowToStep\",\"position\":4,\"name\":\"Il Tag picture: Controllo Totale e Art Direction\",\"text\":\"Mentre  e  permettono al browser di scegliere la risoluzione migliore della stessa immagine, il tag  offre un controllo molto pi\u00f9 granulare. Con  possiamo specificare immagini completamente diverse per diverse condizioni \u2014 un concetto noto come art direction.\"},{\"@type\":\"HowToStep\",\"position\":5,\"name\":\"Formato Switching: WebP, AVIF e Fallback\",\"text\":\"Un altro uso fondamentale del tag  \u00e8 il format switching, ovvero la possibilit\u00e0 di servire formati moderni come WebP e AVIF ai browser che li supportano, mantenendo un fallback in JPEG o PNG per i browser pi\u00f9 datati.\"},{\"@type\":\"HowToStep\",\"position\":6,\"name\":\"Best Practice e Impatto sulle Performance\",\"text\":\"Per ottenere il massimo dalle immagini responsive, \u00e8 fondamentale seguire alcune best practice. Prima di tutto, specificate sempre gli attributi  e  sul tag : questo permette al browser di calcolare l'aspect ratio prima del caricamento, evitando il layout shift (CLS). In secondo luogo, utilizzate l'attributo loading=\"lazy\" per le immagini below-the-fold, in modo che vengano caricate solo quando l'utente si avvicina ad esse durante lo scroll.\"}],\"image\":\"https:\/\/gtechgroup.it\/blog\/wp-content\/uploads\/2025\/07\/html-32-responsive-images.jpg\"}<\/script>"}],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[1246],"tags":[1775,787,1108],"class_list":["post-164055","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html","tag-performance","tag-sviluppo-web","tag-web-design"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/posts\/164055","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/comments?post=164055"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/posts\/164055\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/media\/164235"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/media?parent=164055"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/categories?post=164055"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/de\/wp-json\/wp\/v2\/tags?post=164055"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}