Créa-blog

Ressources pour développeur web

Image responsive en HTML avec figure et picture

Accueil HTML5 Image responsive en HTML avec figure et picture

Apprenez à rendre chaque image responsive en HTML pour un affichage plus rapide. Dans le monde du développement web, l’affichage des images de manière efficace est essentiel pour améliorer les performances de votre site web et offrir une meilleure expérience utilisateur. Bien que le CSS soit un outil puissant pour styliser et positionner les éléments sur une page web, il n’est pas toujours nécessaire pour afficher des images de manière optimale. Découvrez les meilleures techniques pour afficher des images responsives en HTML, tout en optimisant la performance du site.

Affichage d’image responsive en HTML de manière optimisée

Utilisation de la balise <img>

La balise <img> est la méthode la plus simple pour afficher une image sur une page HTML. Elle permet de spécifier le chemin de l’image à afficher à l’aide de l’attribut src. N’oubliez pas de fournir un texte alternatif à l’image via l’attribut alt, ce qui est important pour l’accessibilité et le référencement.

<img src="image.jpg" alt="Description de l'image">

Optimisation de la taille des images

Pour optimiser les performances du site, il est crucial de veiller à ce que les images utilisées aient une taille de fichier minimale tout en conservant une qualité visuelle adéquate. Des outils en ligne gratuits tels que TinyPNG ou JPEG Optimizer peuvent être utilisés pour compresser les images avant de les intégrer dans votre site.

Les types d’extensions d’images

Le choix du meilleur type d’extension d’image pour un site web dépend de plusieurs facteurs, notamment de la nature des images que vous utilisez, des performances souhaitées et des exigences en matière de qualité visuelle. Voici quelques-uns des types d’extensions d’image les plus couramment utilisés sur le web, ainsi que leurs caractéristiques :

  • JPEG : Idéal pour les photographies et les images avec de nombreuses nuances de couleurs. Le JPEG offre une bonne compression avec une qualité d’image élevée. Il prend en charge les images en couleur RVB et convient aux images avec des dégradés de couleurs ou des transitions douces.
  • PNG : Convient aux images avec des zones de couleur plates, des graphiques et des illustrations. Le PNG prend en charge la transparence alpha, ce qui est utile pour les images avec des fonds transparents. Il peut être compressé sans perte de qualité, mais peut générer des fichiers plus volumineux que JPEG pour des images complexes.
  • WebP : C’est un format d’image moderne développé par Google, offrant une meilleure compression que JPEG et PNG. WebP prend en charge la transparence alpha, l’animation et une meilleure qualité d’image pour des fichiers de taille plus petite. Il est compatible avec la plupart des navigateurs modernes, mais peut nécessiter un polyfill ou une dégradation gracieuse pour les navigateurs plus anciens.
  • SVG : Le SVG est idéal pour les images vectorielles telles que les logos, les icônes et les graphiques. Il prend en charge la mise à l’échelle sans perte de qualité, ce qui les rend adaptés aux écrans haute résolution. Les fichiers SVG sont généralement très compacts et peuvent être manipulés avec CSS et JavaScript.

En général, pour les photographies et les images réalistes avec de nombreuses couleurs, le format JPEG est souvent préférable. Pour les images avec des zones de couleur plates, des graphiques et des illustrations, PNG peut être plus approprié. WebP est une alternative moderne offrant une meilleure qualité et une meilleure compression. Les images vectorielles comme SVG sont excellentes pour les éléments graphiques qui doivent être redimensionnés sans perte de qualité.

Utilisation de la balise <picture>

La balise <picture> est une option plus avancée qui permet de fournir plusieurs sources d’une même image, chacune adaptée à des conditions spécifiques telles que la taille de l’écran ou le type d’appareil. Cela peut être utile pour améliorer les performances en fournissant des versions d’images optimisées pour différents contextes.

<picture>
  <source srcset="image-large.jpg" media="(min-width: 1024px)">
  <source srcset="image-medium.jpg" media="(min-width: 768px)">
  <img src="image-small.jpg" alt="Description de l'image">
</picture>
  • srcset="image-large.jpg" spécifie l’image à utiliser si la condition spécifiée dans media est remplie.
  • media="(min-width: 1024px)" indique que l’image spécifiée dans srcset sera utilisée si la largeur de l’écran est d’au moins 1024 pixels.

Ainsi, cette balise <source> fournit une image spécifique image-large.jpg pour les écrans dont la largeur est d’au moins 1024 pixels. C’est une façon d’optimiser l’affichage des images en fournissant différentes versions en fonction de la taille de l’écran ou d’autres caractéristiques spécifiques.

Si aucune des sources spécifiées dans les balises <source> ne correspond aux caractéristiques de l’écran de l’utilisateur, la balise <img> est utilisée avec son attribut src spécifiant une image de taille standard image-small.jpg. Cette image est considérée comme une image de secours, garantissant que l’utilisateur voit au moins une version de l’image, même si elle n’est pas optimisée pour sa taille d’écran.

Utilisation de l’attribut loading

L’attribut loading de la balise <img> permet de spécifier le moment où l’image doit être chargée. En utilisant la valeur lazy, vous pouvez retarder le chargement de l’image jusqu’à ce qu’elle soit proche de la zone visible de la page, ce qui peut considérablement améliorer les temps de chargement initial.

<img src="image.jpg" alt="Description de l'image" loading="lazy">

La balise <figure>

La balise <figure> est utilisée pour encapsuler du contenu multimédia, telles que des images, des graphiques, des vidéos, etc., avec une légende facultative à l’intérieur de la balise <figcaption>.

Supposons que vous ayez une image que vous souhaitez afficher sur votre site web avec une légende. Voici comment vous pouvez le faire en utilisant la balise <figure> :

<figure>
  <img src="example.jpg" alt="Description de l'image">
  <figcaption>Une belle image avec légende</figcaption>
</figure>
  • La balise <figure> est utilisée pour encapsuler l’image et la légende.
  • La balise <img> est utilisée pour afficher l’image avec l’attribut src spécifiant le chemin de l’image et l’attribut alt fournissant une description alternative de l’image.
  • La balise <figcaption> est utilisée pour spécifier la légende de l’image.

L’utilisation de la balise <figure> avec <figcaption> permet une meilleure structuration et une meilleure accessibilité pour le contenu multimédia sur votre site web, en fournissant une légende associée à l’image.

<figure> avec <picture>

<picture> ne peut pas contenir directement <figcaption>. La balise <picture> est spécifiquement conçue pour fournir une alternative flexible pour les différentes versions d’une même image en fonction des conditions de visualisation. Habituellement, vous n’avez pas besoin d’une légende pour chaque version de l’image, car elles sont toutes destinées à représenter la même chose.

Pour ajouter une légende à une image utilisant <picture>, vous pouvez simplement placer l’image dans une balise <figure> avec la légende à l’intérieur de la balise <figcaption>.

<figure>
  <picture>
    <!-- sources d'image pour différentes tailles -->
    <source srcset="image-large.jpg" media="(min-width: 1024px)">
    <source srcset="image-medium.jpg" media="(min-width: 768px)">
    <!-- image par défaut pour les petits écrans -->
    <img src="image-small.jpg" alt="Description de l'image">
  </picture>
  <figcaption>Une belle image avec légende</figcaption>
</figure>

Afficher un image responsive en HTML de manière optimisée est essentiel pour garantir des performances élevées et une expérience utilisateur fluide. En utilisant les techniques décrites dans cet article, vous pouvez améliorer la performance de votre site web sans recourir à des styles CSS complexes. En optimisant la taille des images, en utilisant des balises comme <picture>, et en choisissant judicieusement les attributs comme loading, vous pouvez offrir une expérience visuelle agréable tout en maintenant des temps de chargement rapides pour vos utilisateurs.