Maîtrisez l'intégration d'images dans vos pages web : syntaxe, attributs, optimisation et bonnes pratiques pour un web moderne.
La balise <img> est une balise auto-fermante qui permet d'insérer des images dans vos pages web.
Pas de balise de fermeture </img>
S'insère dans le flux du texte
Le contenu vient d'une source externe
Voici une image inline dans le texte :
qui s'intègre parfaitement.
Image de démonstration :
Largeur : 200px, Hauteur : 100px
Découvrez tous les attributs de la balise <img> pour contrôler l'affichage, l'accessibilité et le comportement de vos images.
Chemin vers le fichier image. Peut être relatif, absolu ou une URL complète.
Description de l'image pour l'accessibilité et quand l'image ne charge pas.
Définissent les dimensions en pixels. Préfèrent CSS pour le responsive.
Info-bulle au survol
Contrôle du chargement
Stratégie de décodage
Gestion CORS
Images responsive (avancé)
Sélecteurs CSS
<!-- Image simple -->
<img src="images/paysage.jpg" alt="Magnifique paysage de montagne au coucher du soleil"/>
<!-- Image avec dimensions pour éviter le layout shift -->
<img
src="images/portrait.jpg"
alt="Portrait de Marie Dupont, directrice marketing"
width="400"
height="300"
class="profile-photo"
/>
<!-- Image optimisée pour les performances -->
<img
src="images/hero-1200.jpg"
alt="Équipe de développeurs travaillant sur des ordinateurs portables"
width="1200"
height="600"
loading="lazy"
decoding="async"
class="hero-image"
id="main-hero"
title="Notre équipe passionnée de développement"
/>
<!-- Image responsive avec srcset -->
<img
src="images/product-640.jpg"
srcset="images/product-320.jpg 320w,
images/product-640.jpg 640w,
images/product-1280.jpg 1280w"
sizes="(max-width: 600px) 100vw,
(max-width: 1200px) 50vw,
33vw"
alt="Nouveau smartphone avec écran OLED haute résolution"
width="640"
height="480"
loading="lazy"
class="product-image responsive"
/>
<!-- Image décorative (alt vide) -->
<img
src="images/decoration-pattern.svg"
alt=""
class="decorative-pattern"
aria-hidden="true"
/>
Choisissez le bon format d'image selon vos besoins : qualité, taille de fichier, transparence et compatibilité navigateur.
Apprenez à créer des images qui s'adaptent parfaitement à tous les écrans avec les techniques modernes HTML et CSS.
Redimensionnez votre navigateur pour voir l'effet :
Cette image s'adapte à la taille de son conteneur
Le navigateur choisit automatiquement la meilleure image selon la taille d'écran, la densité de pixels et la bande passante.
<!-- Images adaptées selon la largeur d'écran -->
<img
src="hero-640.jpg"
srcset="hero-320.jpg 320w,
hero-640.jpg 640w,
hero-1280.jpg 1280w,
hero-1920.jpg 1920w"
sizes="(max-width: 320px) 280px,
(max-width: 640px) 600px,
(max-width: 1280px) 1200px,
1800px"
alt="Image hero responsive"
width="1280"
height="640"
/>
<!-- Images adaptées selon la densité de pixels -->
<img
src="logo.png"
srcset="logo.png 1x,
logo@2x.png 2x,
logo@3x.png 3x"
alt="Logo de l'entreprise"
width="200"
height="100"
/>
320w
= largeur 320px2x
= densité 2x (Retina)L'élément <picture> permet de servir différentes images selon le contexte et d'utiliser des formats modernes avec fallback.
<!-- Support des formats modernes avec fallback -->
<picture>
<!-- Format AVIF pour les navigateurs compatibles -->
<source srcset="image.avif" type="image/avif">
<!-- Format WebP pour les navigateurs modernes -->
<source srcset="image.webp" type="image/webp">
<!-- Fallback JPEG pour tous les navigateurs -->
<img src="image.jpg" alt="Description de l'image"/>
</picture>
<!-- Art Direction : différentes images selon l'écran -->
<picture>
<!-- Image mobile (portrait) -->
<source
media="(max-width: 600px)"
srcset="hero-mobile-400.jpg 400w,
hero-mobile-800.jpg 800w"
sizes="100vw"
>
<!-- Image tablette -->
<source
media="(max-width: 1200px)"
srcset="hero-tablet-800.jpg 800w,
hero-tablet-1600.jpg 1600w"
sizes="100vw"
>
<!-- Image desktop (paysage) -->
<img
src="hero-desktop-1200.jpg"
srcset="hero-desktop-1200.jpg 1200w,
hero-desktop-2400.jpg 2400w"
sizes="100vw"
alt="Image hero adaptée selon l'appareil"
width="1200"
height="600"
/>
</picture>
Mettez en pratique vos connaissances sur les images HTML avec ces exercices progressifs et concrets.
Créez une galerie de 6 images avec différents formats et optimisations pour comprendre les bonnes pratiques.
Implémentez une image hero responsive avec srcset et une galerie utilisant l'élément <picture>.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exercices - Images HTML</title>
<style>
/* CSS pour images responsive */
img {
max-width: 100%;
height: auto;
}
.gallery {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1rem;
padding: 1rem;
}
.gallery-item {
background: #f8f9fa;
border-radius: 8px;
padding: 1rem;
text-align: center;
}
.hero-section {
position: relative;
height: 400px;
overflow: hidden;
border-radius: 12px;
margin-bottom: 2rem;
}
.hero-image {
width: 100%;
height: 100%;
object-fit: cover;
}
</style>
</head>
<body>
<h1>Exercices - Maîtrise des Images HTML</h1>
<!-- EXERCICE 1 : GALERIE SIMPLE -->
<section>
<h2>Exercice 1 : Ma Galerie d'Images</h2>
<div class="gallery">
<!-- TODO: Photo 1 (JPEG avec dimensions) -->
<div class="gallery-item">
<img
src="https://via.placeholder.com/300x200/3498db/fff?text=Photo+1"
alt=""
width="300"
height="200"
/>
<p>Photo Nature</p>
</div>
<!-- TODO: Photo 2 avec lazy loading -->
<div class="gallery-item">
<img
src="https://via.placeholder.com/300x200/2ecc71/fff?text=Photo+2"
alt=""
width="300"
height="200"
loading="lazy"
/>
<p>Architecture</p>
</div>
<!-- TODO: Logo PNG -->
<div class="gallery-item">
<img
src="https://via.placeholder.com/150x150/9b59b6/fff?text=LOGO"
alt="Logo de l'entreprise XYZ"
width="150"
height="150"
/>
<p>Notre Logo</p>
</div>
<!-- TODO: Complétez avec 3 autres images selon les critères -->
</div>
</section>
<hr>
<!-- EXERCICE 2 : IMAGES RESPONSIVE AVANCÉES -->
<section>
<h2>Exercice 2 : Images Responsive Avancées</h2>
<!-- Image Hero avec srcset -->
<div class="hero-section">
<!-- TODO: Implémentez une image hero avec srcset et sizes -->
<img
src="https://via.placeholder.com/800x400/e67e22/fff?text=Hero+Image"
srcset=""
sizes=""
alt="Image hero de présentation"
class="hero-image"
width="1200"
height="600"
/>
</div>
<!-- Images avec élément picture -->
<div class="gallery">
<!-- TODO: Image 1 avec picture et format WebP -->
<div class="gallery-item">
<picture>
<!-- TODO: Source WebP -->
<!-- TODO: Fallback JPEG -->
</picture>
<p>Image WebP/JPEG</p>
</div>
<!-- TODO: Image 2 avec art direction -->
<div class="gallery-item">
<picture>
<!-- TODO: Source mobile -->
<!-- TODO: Source desktop -->
</picture>
<p>Art Direction</p>
</div>
</div>
</section>
</body>
</html>
Vous savez maintenant intégrer des images performantes et accessibles. Découvrez les autres aspects du HTML pour créer des sites complets.