Les liens HTML
Maîtrisez la création de liens hypertextes avec la balise <a> : navigation, emails, téléphones et bien plus pour connecter vos pages.
- Liens hypertextes
- Emails et téléphones
- Fichiers et ancres
- Attributs avancés
Syntaxe de base de <a>
La balise <a> (anchor) crée des liens hypertextes, l’essence même du World Wide Web inventé par Tim Berners-Lee.
Structure de la balise <a>
Syntaxe minimale
html
<a href="destination">Texte du lien</a>
Anatomie d’un lien
-
Balise ouvrante
<a href="...">— Définit la destination -
Contenu
Texte, images ou éléments cliquables
-
Balise fermante
</a>— Termine le lien
Exemples visuels
Types de liens
Découvrez tous les types de liens possibles : externes, internes, emails, téléphones, fichiers et bien d’autres protocoles.
-
Liens externes
html
<!-- URL complète --> <a href="https://google.com"> Google </a> <!-- Nouvel onglet --> <a href="https://github.com" target="_blank"> GitHub </a>- Vers d’autres sites web
- URL complète obligatoire
- HTTPS recommandé
-
Liens internes
html
<!-- Page du site --> <a href="contact.html"> Contact </a> <!-- Dossier --> <a href="pages/about.html"> À propos </a> <!-- Dossier parent --> <a href="../index.html"> Accueil </a>- Entre pages du même site
- Chemins relatifs ou absolus
- Navigation du site
-
Ancres
html
<!-- Section actuelle --> <a href="#section1"> Aller à Section 1 </a> <!-- Autre page + ancre --> <a href="about.html#team"> Notre équipe </a> <!-- Haut de page --> <a href="#top"> Retour haut </a>- Navigation dans la page
- Commence par #
- Cible un ID
-
Emails
html
<!-- Email simple --> <a href="mailto:contact@site.com"> Nous contacter </a> <!-- Avec sujet --> <a href="mailto:support@site.com?subject=Aide"> Support </a> <!-- Complet --> <a href="mailto:team@site.com?subject=Question&body=Bonjour"> Équipe </a>- Ouvre le client email
- Pré-remplit sujet et message
- Plusieurs destinataires possibles
-
Téléphones
html
<!-- Numéro français --> <a href="tel:+33123456789"> 01 23 45 67 89 </a> <!-- International --> <a href="tel:+1-555-123-4567"> +1 555 123 4567 </a> <!-- SMS --> <a href="sms:+33123456789"> Envoyer SMS </a>- Déclenche un appel
- Format international recommandé
- Fonctionne sur mobile
-
Fichiers
html
<!-- PDF --> <a href="brochure.pdf"> Télécharger PDF </a> <!-- Forcer téléchargement --> <a href="file.zip" download="mon-fichier.zip"> Archive ZIP </a> <!-- Image --> <a href="photo-hd.jpg"> Voir en grand </a>- Documents, images, archives
- Attribut download pour forcer
- Affichage ou téléchargement
Attributs de la balise <a>
Explorez tous les attributs disponibles pour contrôler le comportement, l’accessibilité et la sécurité de vos liens.
Attributs essentiels
-
href (obligatoire)
Destination du lien. Sans cet attribut, <a> n’est qu’un élément inline.
- href="https://example.com"
- href="page.html"
- href="#section"
- href="mailto:user@site.com"
-
target
Où ouvrir le lien. Contrôle l’onglet ou la fenêtre de destination.
- target="_self" ← Même onglet (défaut)
- target="_blank" ← Nouvel onglet
- target="_parent" ← Frame parent
- target="_top" ← Fenêtre complète
Attributs de sécurité
-
rel
Relation entre la page courante et la destination. Important pour la sécurité.
- rel="noopener" ← Sécurise _blank
- rel="noreferrer" ← Cache le referrer
- rel="nofollow" ← SEO : ne pas suivre
- rel="external" ← Lien externe
-
Sécurité _blank
⚠️ target="_blank" sans rel="noopener" est une vulnérabilité de sécurité !
- target="_blank"
- target="_blank" rel="noopener noreferrer"
Autres attributs utiles
-
download
Force le téléchargement au lieu de l’affichage
- download ← Nom original
- download="rapport.pdf" ← Nom personnalisé
-
title
Info-bulle descriptive au survol
- title="Ouvre dans un nouvel onglet"
-
hreflang
Langue de la page de destination
- hreflang="en" ← Anglais
- hreflang="fr" ← Français
-
type
Type MIME du fichier lié
- type="application/pdf"
- type="image/jpeg"
-
class et id
Sélecteurs pour CSS et JavaScript
- class="btn btn-primary"
- id="main-cta"
-
data-*
Données personnalisées pour JavaScript
- data-action="track-click"
- data-category="external"
Exemples complets avec attributs
html
<!-- Lien externe sécurisé -->
<a href="https://github.com/microsoft/vscode"
target="_blank"
rel="noopener noreferrer external"
title="Dépôt GitHub de VSCode (nouvel onglet)"
class="external-link">
Voir sur GitHub
</a>
<!-- Email avec sujet et contenu pré-remplis -->
<a href="mailto:support@devweb-academy.com?subject=Question%20HTML&body=Bonjour,%0A%0AJ'ai%20une%20question%20concernant..."
title="Envoyer un email à notre support"
class="email-link">
📧 Contacter le support
</a>
<!-- Téléchargement de fichier -->
<a href="documents/guide-html-2025.pdf"
download="Guide-HTML-DevWeb-Academy.pdf"
type="application/pdf"
title="Télécharger le guide complet (PDF, 2.5 MB)"
class="download-link"
data-track="download"
data-file="html-guide">
📥 Télécharger le guide (PDF)
</a>
<!-- Lien vers section avec navigation fluide -->
<a href="#section-pratique"
title="Aller à la section Pratique"
class="anchor-link smooth-scroll"
role="button">
⚓ Exercices pratiques
</a>
<!-- Lien téléphone avec formatage -->
<a href="tel:+33-1-42-34-56-78"
title="Appeler notre service client"
class="phone-link">
📞 01 42 34 56 78
</a>
<!-- Lien image cliquable -->
<a href="gallery/photo-full-size.jpg"
title="Voir l'image en taille réelle"
class="lightbox-trigger"
data-lightbox="gallery">
<img src="gallery/photo-thumbnail.jpg"
alt="Aperçu de la photo - cliquer pour agrandir"
width="200" height="150" />
</a>
Bonnes pratiques
Découvrez les règles essentielles pour créer des liens accessibles, performants et sécurisés qui améliorent l’expérience utilisateur.
-
Accessibilité
-
Textes de liens descriptifs
- ❌ Mauvais : « Cliquez ici », « En savoir plus »
- ✅ Bon : « Télécharger le rapport annuel 2024 »
-
Indication du comportement
- Préciser si lien externe (nouvel onglet)
- Indiquer le type de fichier (PDF, DOC…)
- Mentionner la taille si important
- Utiliser des icônes explicites
-
Focus et navigation clavier
- a:focus { outline: 2px solid #007acc; outline-offset: 2px; }
-
-
Sécurité
-
Liens externes sécurisés
Empêche l’accès à window.opener et cache le referrer HTTP.
- target="_blank" rel="noopener noreferrer"
-
Validation des URLs
- Vérifier la validité des liens régulièrement
- Éviter les liens vers des domaines suspects
- Utiliser HTTPS quand possible
- Attention aux liens générés dynamiquement
-
Politique CSP
Configurez une Content Security Policy pour contrôler les domaines autorisés dans vos liens.
-
-
Performance
-
Préchargement de liens
- <!-- Dans le head -->
- <link rel="prefetch" href="page-importante.html">
-
Éviter les redirections
- Lien direct vers la destination finale
- Éviter les chaînes de redirections
- Utiliser l’URL canonique
-
Optimisation des téléchargements
- Compresser les fichiers avant mise en ligne
- Indiquer la taille dans le texte du lien
- Utiliser des formats optimisés (WebP, etc.)
-
-
SEO
-
Texte d’ancrage optimisé
- Mots-clés pertinents sans sur-optimisation
- Variation naturelle des termes
- Contexte cohérent avec la destination
-
Attribut rel pour le SEO
- rel="nofollow" ← Liens publicitaires
- rel="sponsored" ← Liens sponsorisés
- rel="ugc" ← Contenu utilisateur
-
Liens internes stratégiques
- Faciliter la navigation entre pages
- Créer une architecture logique
- Distribuer le « jus SEO » dans le site
-
Travaux pratiques
Mettez en pratique vos connaissances sur les liens HTML avec ces exercices progressifs couvrant tous les types de liens.
-
Exercice 1 : navigation de site
Objectif
Créez un système de navigation complet avec menu principal, fil d’Ariane et liens de bas de page.
Éléments requis
- Menu horizontal avec 5 liens internes
- Fil d’Ariane avec liens vers sections parent
- Liens d’ancrage vers sections de la page
- Footer avec liens utiles et mentions légales
- Bouton « Retour en haut » flottant
Structure attendue
Sans feuille de style, la structure se lit telle qu’elle est écrite : nav, fil d’Ariane, contenu, pied de page. -
Exercice 2 : centre de contact multimodal
Mission
Créez une page de contact complète avec tous les moyens de communication et téléchargements utiles.
Fonctionnalités
- 3 adresses email différentes (support, commercial, RH)
- 2 numéros de téléphone (fixe et mobile)
- Liens vers réseaux sociaux (externes sécurisés)
- 3 documents téléchargeables (PDF, ZIP, DOC)
- Tous les attributs et bonnes pratiques
Exemple de carte de contact
Trois blocs, trois natures de lien : contact direct, réseaux externes, fichiers.
Code de démarrage
html
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Exercices - Liens HTML</title>
<style>
/* Styles pour les exercices */
body { font-family: Arial, sans-serif; line-height: 1.6; }
.container { max-width: 1200px; margin: 0 auto; padding: 20px; }
.nav-main { background: #f8f9fa; padding: 15px; margin-bottom: 20px; }
.nav-main ul { list-style: none; display: flex; gap: 20px; margin: 0; padding: 0; }
.breadcrumb { background: #e9ecef; padding: 10px; margin-bottom: 20px; }
.contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }
.contact-card { border: 1px solid #ddd; padding: 20px; border-radius: 8px; }
.external-link::after { content: " 🔗"; }
.download-link::before { content: "📥 "; }
footer { background: #343a40; color: white; padding: 30px 0; margin-top: 40px; }
</style>
</head>
<body>
<!-- EXERCICE 1 : NAVIGATION -->
<header>
<nav class="nav-main">
<!-- TODO: Menu principal avec 5 liens -->
<ul>
<li><a href="index.html">Accueil</a></li>
<!-- TODO: Ajoutez 4 autres liens -->
</ul>
</nav>
<!-- TODO: Fil d'Ariane -->
<div class="breadcrumb">
<!-- Exemple: Accueil > Section > Page actuelle -->
</div>
</header>
<div class="container">
<h1 id="top">Exercices sur les Liens HTML</h1>
<!-- Navigation rapide -->
<nav>
<h2>Navigation rapide :</h2>
<ul>
<!-- TODO: Liens vers sections de la page -->
<li><a href="#navigation">Navigation</a></li>
</ul>
</nav>
<section id="navigation">
<h2>Exercice 1 : Système de Navigation</h2>
<!-- Contenu de la section -->
</section>
<!-- EXERCICE 2 : CONTACT MULTIMODAL -->
<section id="contact">
<h2>Exercice 2 : Centre de Contact</h2>
<div class="contact-grid">
<!-- Carte Service Client -->
<div class="contact-card">
<h3>📞 Service Client</h3>
<ul>
<!-- TODO: Email support avec sujet pré-rempli -->
<li>Email : <a href="mailto:support@monsite.com?subject=Demande%20de%20support">support@monsite.com</a></li>
<!-- TODO: Téléphone avec format international -->
<li>Téléphone : <a href="tel:+33123456789">01 23 45 67 89</a></li>
</ul>
</div>
<!-- TODO: Carte Commercial -->
<!-- TODO: Carte RH -->
<!-- Carte Réseaux Sociaux -->
<div class="contact-card">
<h3>🌐 Réseaux Sociaux</h3>
<ul>
<!-- TODO: Liens externes sécurisés -->
<li><a href="https://facebook.com/monentreprise" target="_blank" rel="noopener noreferrer" class="external-link">Facebook</a></li>
<!-- TODO: Ajoutez Twitter, LinkedIn -->
</ul>
</div>
<!-- Carte Documents -->
<div class="contact-card">
<h3>📁 Documents à télécharger</h3>
<ul>
<!-- TODO: PDF avec download et type -->
<li><a href="documents/brochure.pdf" download="Brochure-Entreprise-2025.pdf" type="application/pdf" class="download-link">Brochure PDF (2.5 MB)</a></li>
<!-- TODO: Ajoutez ZIP et DOC -->
</ul>
</div>
</div>
</section>
</div>
<!-- Footer avec liens utiles -->
<footer>
<div class="container">
<!-- TODO: Liens footer et retour en haut -->
<p><a href="#top">⬆️ Retour en haut</a></p>
</div>
</footer>
</body>
</html>
Connectez vos pages avec style
Vous maîtrisez maintenant les liens HTML sous toutes leurs formes. Explorez les autres aspects du HTML pour créer des sites web complets et interactifs.