Aller au contenu

Balise HTML <img>

La balise <img> est utilisée pour insérer une image dans un document HTML. L’image elle-même n’est pas insérée directement dans le document ; le navigateur insère une image HTML à partir de la source spécifiée dans la balise <img>.

HTML img tag

Deux attributs sont obligatoires pour un élément <img> : src, qui sert à afficher la source de l’image, et alt, qui définit un texte alternatif pour l’image.

Pour rendre les images HTML cliquables, vous devez placer la balise <img> à l’intérieur de la balise <a>, qui sert à insérer un lien d’image HTML.

Syntaxe

La balise <img> est vide, ce qui signifie que la balise de fermeture n’est pas requise. Elle contient uniquement des attributs. Mais en XHTML, la balise <img> doit être auto-fermée (<img />).

Exemple de la balise HTML <img> :

Un exemple d’utilisation d’une balise HTML <img>

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <h1>Heading </h1>
    <p>This is Aleq's photo</p>
    <img src="https://fr.w3docs.com/uploads/media/default/0001/01/25acddb3da54207bc6beb5838f65f022feaa81d7.jpeg" alt="Aleq" width="200" height="185"/>
  </body>
</html>

Nous pouvons utiliser CSS pour modifier l’apparence initiale d’une image.

Exemple de la balise <img> stylée avec CSS :

Comment styliser une balise HTML <img> à l’aide des propriétés CSS vertical-align et padding ?

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      img {
      border-radius: 50%;
      border: 4px dashed #077cb9;
      width: 300px;
      display: block;
      margin: 0 auto;
      }
    </style>
  </head>
  <body>
    <div>
     <img src="https://fr.w3docs.com/uploads/media/default/0001/03/e91b0d7a957cadd0c3282d34e423ff0f97799a1d.jpeg" alt="Ararat mountain" width="256" height="256" />
    </div>
  </body>
</html>

Attributs Src et Alt

L’attribut src (source) affiche la source de l’image. Il est obligatoire, car il définit le chemin vers l’image. La valeur de l’attribut src peut être soit le nom du fichier, soit son URL.

L’attribut alt définit un nom alternatif pour l’image. Il est également obligatoire pour la balise <img>. Sa valeur est un texte descriptif affiché dans le navigateur avant le chargement de l’image, ou si l’image ne parvient pas à se charger.

TIP

Nous recommandons d’inclure des mots-clés dans le texte alternatif. Cela améliorera le classement du site web dans les moteurs de recherche.

Utilisation de "data:image/[type];base64,[base64-string]" pour l’attribut src

Le format data:image/[type];base64,[base64-string] peut être utilisé comme valeur de l’attribut src d’une balise img pour afficher une image directement à partir du code HTML, sans avoir à la charger depuis un fichier externe.

Voici un exemple d’utilisation de ce format pour afficher une image dans une balise img :

Utilisation de "data:image/[type];base64,[base64-string]" pour l’attribut src

html
<img src="data:image/png;base64,iVBORw0KG..." alt="Base64 encoded image">

Dans cet exemple, image/png spécifie le type MIME de l’image, et iVBORw0KG... représente les données de l’image encodées en base64.

Notez que l’utilisation d’images encodées en base64 peut augmenter la taille du fichier HTML et ralentir le chargement de la page. Il est généralement recommandé d’utiliser ce format pour de petites images ou des icônes, et d’utiliser des fichiers externes pour des images plus grandes.

Exemple de la balise HTML <img> avec les attributs src et alt :

Un exemple de la balise img avec les attributs src et alt

html
<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <body>
    <img src="https://fr.w3docs.com/uploads/media/default/0001/03/01cc5ccf0ce755075e468cc651f27c354e1b032e.jpeg" alt="Paris" width="256" height="256" />
  </body>
</html>

L’attribut loading

L’attribut loading permet de différer le chargement des images et des iframes jusqu’à ce qu’ils soient proches d’être affichés. C’est désormais une fonctionnalité HTML standard prise en charge par tous les navigateurs modernes.

Les valeurs prises en charge pour l’attribut loading incluent :

  • lazy, qui diffère le chargement jusqu’à ce que l’image ou l’iframe atteigne un seuil de distance par rapport à la zone d’affichage.
  • eager, qui charge la ressource immédiatement.

Vous pouvez utiliser la valeur lazy pour profiter du chargement différé natif du navigateur :

Balise HTML <img>

html
<img src="defer.png" loading="lazy" alt="Beautiful" width="500" height="400">

Le chargement différé est un ensemble de techniques de développement web et applicatif qui reportent le chargement des ressources d’une page à un moment ultérieur, lorsque ces ressources sont nécessaires, au lieu de les charger immédiatement. Ces techniques aident à améliorer les performances et l’utilisation des ressources de l’appareil, en réduisant les coûts associés.

Formats d’image pris en charge

Les formats de fichiers image sont des moyens standardisés d’organiser et de stocker des images numériques. Un format de fichier image peut stocker des données dans un format non compressé, un format compressé (sans perte ou avec perte), ou un format vectoriel. (Wikipedia).

Chaque agent utilisateur prend en charge différents formats d’image. Voici la liste des formats d’image courants :

AbréviationFormat de fichierType MIMEExtension(s) de fichierCompatibilité navigateur
APNGAnimated Portable Network Graphicsimage/apng.apngChrome, Edge, Firefox, Opera, Safari
BMPBitmap fileimage/bmp.bmpChrome, Edge, Firefox, Opera, Safari
GIFGraphics Interchange Formatimage/gif.gifChrome, Edge, Firefox, Opera, Safari
ICOMicrosoft Iconimage/x-icon.ico, .curChrome, Edge, Firefox, Opera, Safari
JPEGJoint Photographic Expert Group imageimage/jpeg.jpg, .jpeg, .jfif, .pjpeg, .pjpChrome, Edge, Firefox, Opera, Safari
PNGPortable Network Graphicsimage/png.pngChrome, Edge, Firefox, Opera, Safari
SVGScalable Vector Graphicsimage/svg+xml.svgChrome, Edge, Firefox, Opera, Safari
TIFFTagged Image File Formatimage/tiff.tif, .tiffAucun intégré ; extensions requises
WebPWeb Picture formatimage/webp.webpChrome, Edge, Firefox, Opera

Erreurs de chargement d’image

Il peut se produire certaines erreurs lors du chargement d’une image. Si un gestionnaire d’événement onerror a été défini sur l’événement d’erreur, ce gestionnaire sera appelé. Voici les situations dans lesquelles cela peut se produire :

  • L’attribut src est vide ("") ou null.
  • L’URL du src et l’URL de la page sur laquelle se trouve actuellement l’utilisateur sont identiques.
  • Une corruption de l’image empêche son chargement.
  • Les métadonnées de l’image sont corrompues au point qu’il est impossible d’en récupérer les dimensions, et aucune dimension n’est spécifiée dans les attributs de la balise <img>.
  • Le format n’est pas pris en charge par l’agent utilisateur.

Attributs

AttributValeurDescription
alignleft right top bottom middleDéfinit l’alignement de l’image par rapport aux éléments environnants. Non pris en charge en HTML5.
alttextDéfinit le texte alternatif pour l’image.
borderpixelsDéfinit la largeur de la bordure autour de l’image. Non pris en charge en HTML5.
crossoriginanonymous | use-credentialsDéfinit si CORS est utilisé lors du chargement de l’image. Les images chargées via CORS peuvent être utilisées dans l’élément <canvas> sans limiter ses fonctionnalités.
heightpixelsDéfinit la hauteur de l’image.
hspacepixelsDéfinit des espaces à gauche et à droite de l’image. Non pris en charge en HTML5.
ismapismapIndique que le contenu de la balise est une carte d’image côté serveur.
longdescURLSpécifie l’adresse URL contenant une description détaillée de l’image (pour une brève description de l’image, utilisez l’attribut alt). Non pris en charge en HTML5.
srcURLDéfinit la source de l’image.
usemap#mapnameSpécifie un lien vers l’élément <map>, qui contient les coordonnées de la carte d’image côté client.
vspacepixelsDéfinit des espaces en haut et en bas de l’image. Non pris en charge en HTML5.
widthpixelsDéfinit la largeur de l’image.

La balise <img> prend en charge les attributs globaux et les attributs d’événement.

Attributs obsolètes

AttributValeursDescriptionAlternative
alignleft right top bottom middleDéfinit l’alignement de l’image par rapport aux éléments environnants.Centre l’image HTML par rapport aux éléments environnants.Les propriétés CSS float et/ou vertical-align.
borderpixelsDéfinit la largeur de la bordure autour de l’image.La propriété CSS border.
hspaceLa propriété CSS margin à la place.
nameSpécifie un nom pour l’élémentL’attribut id.
vspacepixelsDéfinit des espaces en haut et en bas de l’image.Utilisez plutôt la propriété CSS margin.

Practice

Quels attributs peuvent être utilisés avec la balise HTML <img> ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.