Immagini responsive e lazy loading
Implementate tecniche per immagini responsive utilizzando `srcset` e `sizes` e sfruttate il lazy loading per i contenuti multimediali fuori schermo.
Immagini responsive e lazy loading è una lezione Web Performance Optimization & Lighthouse gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Web Performance Optimization & Lighthouse, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Web Performance Optimization & Lighthouse include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Why Responsive Images?
Imagine browsing a website on a tiny phone screen, but the site loads an image meant for a huge desktop monitor. That's a waste of data and makes the page slow!
Responsive images ensure users get images optimized for their specific device and screen size, improving performance and user experience.
`srcset` for Resolution
The srcset attribute allows you to provide a list of different image files for the browser to choose from. One way to use it is for resolution switching.
This means serving higher-resolution images to devices with high-DPI (Retina) screens and standard resolution images to others.
1x: Standard resolution2x,3x: Higher resolutions
<img src="cat-1x.jpg" srcset="cat-1x.jpg 1x, cat-2x.jpg 2x" alt="A cute cat" />`srcset` for Viewport Width
Beyond resolution, srcset can also help with viewport switching. This lets you offer different image files based on the browser's viewport width.
The w descriptor indicates the intrinsic width of the image file. The browser then picks the most appropriate source.
<img srcset="small.jpg 400w, medium.jpg 800w, large.jpg 1200w" src="medium.jpg" alt="A landscape" />The `sizes` Attribute
When using srcset with w descriptors, the browser needs to know how wide the image will actually be rendered on the page at different viewport sizes. That's where the sizes attribute comes in.
sizes takes a list of media conditions and image slot widths. It tells the browser, "At this screen size, the image will take up X% of the viewport."
Working with `sizes`
The browser uses sizes to pick the best image from srcset. It doesn't resize the image; it just helps select the right source file.
(max-width: 600px) 100vw: If viewport is 600px or less, image is 100% of viewport width.(max-width: 1200px) 50vw: If viewport is 1200px or less, image is 50% of viewport width.800px: Otherwise, image is 800px wide.
Combined `srcset` & `sizes`
Here’s how srcset and sizes work together. Try changing your browser window size to see how it might pick different images.
The browser uses sizes to calculate the ideal image width and then finds the closest match in srcset's provided widths.
<!DOCTYPE html>
<html>
<head>
<title>Responsive Image</title>
</head>
<body>
<img
srcset="
image-400w.jpg 400w,
image-800w.jpg 800w,
image-1200w.jpg 1200w"
sizes="
(max-width: 600px) 100vw,
(max-width: 1200px) 50vw,
800px"
src="image-800w.jpg"
alt="A beautiful landscape"
style="max-width: 100%; height: auto;"
>
<p>Imagine image-400w.jpg, image-800w.jpg, image-1200w.jpg exist.</p>
</body>
</html>Art Direction with `<picture>`
Sometimes, simply scaling an image isn't enough. You might want to display a completely different image, or a different crop, based on the screen size or device type. This is called art direction.
The <picture> element allows you to provide multiple <source> elements with different media queries and image sources, and a fallback <img>.
<picture>
<source media="(max-width: 600px)" srcset="narrow-crop.jpg">
<source media="(min-width: 601px)" srcset="wide-crop.jpg">
<img src="default-crop.jpg" alt="A scenic view">
</picture>What is Lazy Loading?
Even with responsive images, if a page has many images, it can still be slow. Lazy loading helps by deferring the loading of non-critical resources (like images or iframes) until they are needed.
Typically, this means loading them only when they are about to enter the user's viewport.
- Reduces initial page load time.
- Saves bandwidth for users.
- Improves Core Web Vitals like LCP.
Native Lazy Loading
Modern browsers offer native lazy loading, meaning you don't need JavaScript libraries for basic lazy loading. You just add the loading="lazy" attribute to your <img> or <iframe> tags.
eager: Loads immediately.lazy: Defers loading until near viewport.auto: Browser decides.
<img src="placeholder.jpg" data-src="actual-image.jpg" loading="lazy" alt="Product image" />
<p>Note: <code>data-src</code> is often used with JS-based lazy loading. For native, just <code>src</code> + <code>loading='lazy'</code> is usually enough if the browser supports it.</p>Quick Check
Which attributes and elements are primarily used to implement responsive images and lazy loading?
Lesson Summary
We've explored powerful techniques to optimize images and media for web performance:
- Responsive Images: Use
srcset(withxfor resolution,wfor viewport width) andsizesto deliver appropriate image sizes. - Art Direction: Employ the
<picture>element for more control over image display based on media conditions. - Lazy Loading: Implement
loading="lazy"on<img>and<iframe>to defer off-screen content, boosting initial page load speed.
By using these methods, you can significantly improve your website's performance and user experience!
Impara Web Performance Optimization & Lighthouse con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 12
- Lezioni
- 48
Domande Frequenti
La lezione «Immagini responsive e lazy loading» è gratuita?
Sì — il testo completo di «Immagini responsive e lazy loading» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Web Performance Optimization & Lighthouse, passa a CoddyKit PRO. Il corso Web Performance Optimization & Lighthouse include 4 lezioni in totale.
Cosa imparerò in «Immagini responsive e lazy loading»?
Implementate tecniche per immagini responsive utilizzando `srcset` e `sizes` e sfruttate il lazy loading per i contenuti multimediali fuori schermo. Eserciti Web Performance Optimization & Lighthouse con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Web Performance Optimization & Lighthouse?
Non è richiesta alcuna esperienza precedente. Web Performance Optimization & Lighthouse su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Immagini responsive e lazy loading»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Web Performance Optimization & Lighthouse?
Sì. Ogni lezione Web Performance Optimization & Lighthouse include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Formati efficienti per le immagini
- Immagini responsive e lazy loading
- Prestazioni di video e animazioni
- CDN per immagini e ottimizzazione della distribuzione