Ce que font srcset et sizes
srcset donne au navigateur une liste de versions de la même image avec leur largeur réelle
(800x450.jpg 800w). sizes lui indique la largeur que l’image occupera dans la page selon la
taille de l’écran. Avec ces deux informations, et connaissant la densité de pixels de l’écran, le navigateur choisit le
fichier le plus léger qui reste net. Il décide avant la mise en page : c’est pourquoi vous devez le lui
indiquer avec sizes.
Comment choisir les largeurs
- Couvrez du mobile jusqu’au double de la largeur maximale occupée par l’image, pour les écrans haute densité.
- Quatre à six largeurs suffisent : davantage de versions n’économise presque rien et complique le cache.
- Des paliers d’environ 300 à 400 px fonctionnent bien :
480, 800, 1200, 1600pour une colonne de 800 px.
img avec srcset ou picture
Si seule la taille change, <img srcset sizes> suffit. <picture> est nécessaire pour
proposer des formats que tous les navigateurs ne comprennent pas : chaque <source> porte un
type et le navigateur utilise le premier qu’il sait lire. L’AVIF passe donc avant le WebP, et le JPG de
l’<img> sert de repli. Il sert aussi à la « direction artistique » : des recadrages différents selon
l’écran, avec media.
Les détails qu’on oublie
widthetheight: grâce à eux, le navigateur réserve l’espace avant l’arrivée de l’image et la page ne saute pas (CLS). Il suffit qu’ils aient les bonnes proportions.loading="lazy"sur tout ce qui n’est pas visible au chargement. Jamais sur l’image principale en haut de page : elle retarderait le LCP.- L’
altdécrit l’image ; si elle est décorative, il reste vide (alt=""), sans être omis.
Les URL du code viennent du générateur ximg.es et chaque image affiche sa largeur : vous pouvez coller le HTML dans votre maquette et voir d’un coup d’œil quelle version se charge sur chaque écran. Une fois les vraies photos disponibles, il suffit de changer les URL.