Séance 2 : Liens, images, tableaux et sémantique HTML
🎯 Objectifs de la séance
À la fin de cette séance, vous serez capable de :
- Créer des liens hypertextes et gérer la navigation
- Intégrer des images dans une page web
- Construire des tableaux de données
- Utiliser les balises sémantiques HTML5 pour structurer une page
📚 Partie théorique
2.1 Les liens hypertextes
Les liens sont l'essence même du Web (HyperText). Ils permettent de naviguer entre les pages.
Syntaxe de base
Liens relatifs vs absolus
Liens absolus : URL complète vers un site externe
<a href="https://www.google.com">Aller sur Google</a>
<a href="https://developer.mozilla.org">Documentation MDN</a>
Liens relatifs : Chemins vers des fichiers du même site
Depuis index.html :
<!-- Fichier au même niveau -->
<a href="contact.html">Contact</a>
<!-- Fichier dans un sous-dossier -->
<a href="pages/about.html">À propos</a>
Depuis pages/about.html :
<!-- Remonter d'un niveau avec ../ -->
<a href="../index.html">Accueil</a>
<a href="../contact.html">Contact</a>
Attributs utiles du lien
target="_blank" : Ouvrir dans un nouvel onglet
title : Info-bulle au survol
Ancre vers une section : Naviguer dans la même page
<!-- Définir l'ancre -->
<h2 id="section-contact">Contact</h2>
<!-- Lien vers l'ancre -->
<a href="#section-contact">Aller à la section Contact</a>
Lien email
Lien téléphone
2.2 Les images
Syntaxe de base
⚠️ Attributs obligatoires :
src: Source (chemin) de l'imagealt: Texte alternatif (accessibilité, SEO, si image ne charge pas)
Chemins relatifs et absolus
Chemin absolu (image externe)
Chemin relatif
Depuis index.html :
<img src="images/logo.png" alt="Logo de l'entreprise">
<img src="images/photos/equipe.jpg" alt="Photo de l'équipe">
Attributs optionnels utiles
⚠️ Astuce : Spécifier width et height améliore les performances (évite le décalage de contenu lors du chargement).
2.3 Les tableaux
Les tableaux servent à présenter des données structurées (pas pour la mise en page !).
Structure de base
<table>
<tr>
<td>Cellule 1</td>
<td>Cellule 2</td>
</tr>
<tr>
<td>Cellule 3</td>
<td>Cellule 4</td>
</tr>
</table>
<table>: Conteneur principal<tr>: Table Row (ligne)<td>: Table Data (cellule de données)
Tableau avec en-têtes
<table>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Age</th>
</tr>
<tr>
<td>Dupont</td>
<td>Jean</td>
<td>25</td>
</tr>
<tr>
<td>Martin</td>
<td>Sophie</td>
<td>30</td>
</tr>
</table>
<th>: Table Header (cellule d'en-tête, en gras par défaut)
Structure complète avec thead, tbody, tfoot
<table>
<thead>
<tr>
<th>Produit</th>
<th>Prix</th>
<th>Quantité</th>
</tr>
</thead>
<tbody>
<tr>
<td>Ordinateur</td>
<td>899€</td>
<td>2</td>
</tr>
<tr>
<td>Souris</td>
<td>25€</td>
<td>5</td>
</tr>
</tbody>
<tfoot>
<tr>
<th>Total</th>
<td>924€</td>
<td>7</td>
</tr>
</tfoot>
</table>
Fusion de cellules
colspan : Fusionner des colonnes (horizontal)
rowspan : Fusionner des lignes (vertical)
<tr>
<td rowspan="2">Cette cellule occupe 2 lignes</td>
<td>Cellule 1</td>
</tr>
<tr>
<!-- Pas de première cellule, elle est fusionnée depuis la ligne précédente -->
<td>Cellule 2</td>
</tr>
2.4 Balises sémantiques HTML5
HTML5 introduit des balises qui donnent du sens à la structure, au-delà de simples <div>.
Pourquoi utiliser les balises sémantiques ?
✅ Accessibilité : Les lecteurs d'écran comprennent mieux la structure
✅ SEO : Les moteurs de recherche identifient mieux le contenu
✅ Maintenabilité : Le code est plus lisible et compréhensible
Les principales balises sémantiques
<header>
<!-- En-tête du site ou d'une section -->
<!-- Logo, navigation, titre principal -->
</header>
<nav>
<!-- Menu de navigation -->
<ul>
<li><a href="index.html">Accueil</a></li>
<li><a href="about.html">À propos</a></li>
</ul>
</nav>
<main>
<!-- Contenu principal de la page (unique par page) -->
<article>
<!-- Contenu autonome (article de blog, produit...) -->
<h2>Titre de l'article</h2>
<p>Contenu de l'article...</p>
</article>
<section>
<!-- Section thématique du document -->
<h2>Titre de la section</h2>
<p>Contenu de la section...</p>
</section>
<aside>
<!-- Contenu annexe (sidebar, publicité...) -->
<h3>Articles liés</h3>
<ul>...</ul>
</aside>
</main>
<footer>
<!-- Pied de page -->
<!-- Informations de contact, copyright, liens légaux -->
</footer>
Autres balises sémantiques utiles
<figure> et <figcaption> : Image avec légende
<figure>
<img src="graphique.png" alt="Graphique des ventes">
<figcaption>Figure 1 : Évolution des ventes en 2024</figcaption>
</figure>
<time> : Date ou heure
<mark> : Texte surligné
💻 Partie pratique
Exercice 2 : Mini-site fan sur un thème libre
📋 Consignes
Créez un mini-site de 3 pages sur un sujet qui vous passionne : un jeu vidéo, une série TV, un sport,...
Structure de fichiers à créer :
mon-site/
│
├── index.html (page d'accueil)
├── page2.html (contenu principal)
├── page3.html (galerie/infos)
└── images/
├── logo.png
└── photo1.jpg
Contenu de chaque page :
index.html (Page d'accueil)
- En-tête avec logo (image) et titre du site
- Menu de navigation vers les 3 pages
- Section d'introduction avec image et paragraphe
- Pied de page avec copyright
page2.html (Contenu principal)
- En-tête identique
- Menu de navigation (même menu)
- Article de présentation détaillée
- 1-2 images avec légendes (
<figure>) - Pied de page
page3.html (Infos complémentaires)
- En-tête identique
- Menu de navigation
- Contenu au choix (personnages, épisodes, statistiques...)
- Au moins 1 lien externe (site officiel, wiki...)
- Pied de page
Exigences techniques
- [ ] Utiliser les balises sémantiques :
<header>,<nav>,<main>,<article>,<footer> - [ ] Menu de navigation fonctionnel sur chaque page
- [ ] Au moins 3 images avec attribut
alt - [ ] Au moins 1 lien externe
- [ ] Utiliser
<figure>et<figcaption>pour une image - [ ] Code indenté et commenté
✅ Checklist de validation
- [ ] Structure sémantique correcte
- [ ] Navigation fonctionne entre toutes les pages
- [ ] Toutes les images s'affichent
- [ ] Lien externe fonctionnel
Exercice 3 : Emploi du temps
📋 Consignes
Créez un fichier emploi-du-temps.html contenant votre emploi du temps hebdomadaire (réel ou fictif pour un étudiant en L2 informatique).
Structure attendue :
- Planning sur 5 jours (Lundi à Vendredi)
- 4 créneaux horaires minimum par jour (ex: 8h-10h, 10h-12h, 14h-16h, 16h-18h)
- Types de cours variés : CM, TD, TP, Projet
Exigences techniques (simplifiées) :
- [ ] Attribut
border="1"pour visualiser le tableau - [ ] Utiliser
<thead>,<tbody> - [ ] Utiliser
<th>pour les en-têtes (jours et horaires) - [ ] Au moins 1 utilisation de
colspan(ex: pause déjeuner) - [ ] Au moins 1 utilisation de
rowspan(ex: TP de 3h) - [ ] Cellules bien alignées et tableau cohérent
🔧 Conseils et bonnes pratiques
Organisation des fichiers
mon-projet/
│
├── index.html
├── page2.html
├── page3.html
│
└── images/
├── logo.png
├── photo1.jpg
└── photo2.jpg
Règles d'or :
- Noms de fichiers en minuscules et sans espaces (utiliser
-) - Bonne convention :
mon-fichier.html,ma-photo.jpg - Organiser les images dans un dossier
images/ouimg/ - Extension
.html(pas.htm)
Attribut alt pour les images
Mauvais exemples :
<img src="photo.jpg" alt="photo"> ❌ Trop vague
<img src="logo.jpg" alt="logo"> ❌ Pas descriptif
<img src="img001.jpg" alt=""> ❌ Vide (sauf image décorative)
Bons exemples :
<img src="equipe.jpg" alt="Photo de l'équipe devant le bureau"> ✅
<img src="logo.jpg" alt="Logo de l'entreprise TechCorp"> ✅
<img src="graphique.jpg" alt="Graphique montrant l'évolution des ventes 2024"> ✅
<!-- Image purement décorative (alt vide accepté) -->
<img src="decoration.png" alt=""> ✅
Validation du code HTML
Utilisez le validateur W3C : https://validator.w3.org/
Comment valider :
- Aller sur le site
- Onglet "Validate by File Upload" ou "Validate by Direct Input"
- Uploader votre fichier ou coller le code
- Corriger les erreurs identifiées
📝 À retenir de cette séance
✅ Les liens (<a href="">) permettent la navigation : relatifs (même site) ou absolus (sites externes)
✅ Les images (<img>) nécessitent src et alt obligatoires
✅ Les tableaux structurent des données avec <table>, <tr>, <td>, <th>
✅ colspan et rowspan fusionnent des cellules
✅ Les balises sémantiques HTML5 (<header>, <nav>, <main>, <article>, <footer>) donnent du sens à la structure
✅ Organiser les fichiers en dossiers clairs avec une nomenclature cohérente
📚 Pour aller plus loin
Documentation
Outils
- W3C Validator - Validation HTML
- Can I Use - Compatibilité navigateurs
- Unsplash - Images libres de droits
- Pexels - Images et vidéos gratuites