<picture>
Permet de servir différentes versions d'une image selon le contexte : format, taille d'écran ou résolution. Contient des source et un img de repli.
Description
L’élément <picture> est un conteneur permettant de proposer plusieurs sources d’image alternatives. Le navigateur choisit la source la plus adaptée selon les conditions définies dans les éléments <source>. L’élément <img> à la fin sert de repli et est toujours affiché — son alt s’applique à toutes les sources.
Syntaxe
<picture>
<source srcset="image.avif" type="image/avif">
<source srcset="image.webp" type="image/webp">
<img src="image.jpg" alt="Description de l'image">
</picture>
Exemples
Formats modernes avec repli JPEG :
<picture>
<source srcset="hero.avif" type="image/avif">
<source srcset="hero.webp" type="image/webp">
<img src="hero.jpg" alt="Vue panoramique de la montagne" width="1200" height="630" loading="eager">
</picture>
Images différentes selon la taille d’écran (art direction) :
<picture>
<!-- Image carrée sur mobile -->
<source media="(max-width: 600px)" srcset="portrait-400.jpg">
<!-- Image paysage sur desktop -->
<source media="(min-width: 601px)" srcset="paysage-1200.jpg">
<img src="paysage-1200.jpg" alt="Équipe en réunion" width="1200" height="600">
</picture>
Notes
<img> est obligatoire : <picture> doit toujours contenir un <img> en dernier enfant. C’est cet <img> qui est rendu — les <source> modifient uniquement l’URL source utilisée.
Deux cas d’usage distincts :
- Format différent : proposer AVIF/WebP avec repli JPEG — utiliser
typesur<source>. - Art direction : servir des images visuellement différentes selon le viewport — utiliser
mediasur<source>.
Support navigateurs
Chrome38+ · Firefox38+ · Safari9.1+ · Edge13+