srcset e le dimensioni delle tag <img>

Una Guida Efficient and Opinionated sulle Immagini per il 2023

Controlla la sidebar per un’analisi approfondita. Questa è una rapida panoramica per l’aggiornamento dei tag <img> per gestire i dispositivi moderni delle varie dimensioni e densità di pixel. Devi sapere che i pixel non sono uguali e che il devicePixelRatio tende a essere verso 3,875 piuttosto che 1:1. I telefoni moderni fingono di essere larghi da 320-428px per la leggibilità (in pixel CSS), ma hanno molti pixel del dispositivo per ogni pixel CSS.

Se la tua immagine non cambia mai dimensione, indipendentemente da quanto è stretta la finestra del browser, dovresti usare un descrittore di densità. Questo è spesso adatto per loghi, icone e pulsanti.

Sai qual è il tuo breakpoint? Avrai bisogno di quei numeri per affinare la soluzione qui sotto - e almeno il breakpoint della larghezza del viewport in cui l’area del contenuto principale smette di crescere.

Il metodo facile


<img src="img.jpg?w=480" 
        srcset="img.jpg?format=webp&w=480 480w, 
                img.jpg?format=webp&w=800 800w, 
                img.jpg?format=webp&w=1200 1200w, 
                img.jpg?format=webp&w=1600 1600w, 
                img.jpg?format=webp&w=2000 2000w"

        sizes="(max-width: 700px) 100vw, 800px" alt="Cane che cavalca una bicicletta" />

<!-- Assumiamo che tu abbia un breakpoint a 700px. 
      E che sotto quella larghezza del viewport, questa immagine prende il 100% di larghezza, ma
      quando il viewport è più grande, l'immagine è limitata a 800 pixel CSS -->

<!-- Questo suppone che stai usando un server di immagini compatibile con RIAPI come Imageflow. 
     La produzione di varianti di immagini al volo è essenziale per la sanità del developer. -->