đ Les liens
Un lien hypertexte (hyperlien) permet de naviguer dâune ressource Ă une autre (page, section, fichier, URL externe). En HTML, tout lien se dĂ©finit avec la balise <a>
et lâattribut href
.
La balise <a>
â
On peut faire un lien Ă l'aide de la balise <a>
de cette façon:
<a href="destination">Texte du lien</a>
<a>
: ouvre la balise dâancrage (anchor).- href: URL ou chemin cible.
- Contenu (texte ou image) sert de zone cliquable.
Par exemple, pour faire un lien vers la page Wikipedia de Grumpy Cat, le lien serait:
<a href="https://en.wikipedia.org/wiki/Grumpy_Cat">Grumpy Cat</a>
Ce qui donnerait dans le navigateur:
- Le texte du lien (
Grumpy Cat
) doit ĂȘtre affichĂ© entre les balises - L'attribut
href
dĂ©finit l'adresse vers oĂč le lien pointe
Un lien doit ĂȘtre descriptif! Ăvitez les cliquez ici
variations du genre.
InsĂ©rer un lien dans du texteâ
Il se peut que nous affichions un lien seul, sans texte autour, comme dans un menu de navigation, mais les liens se retrouvent souvent au travers de blocs de texte.
Par exemple, si on voulait plutĂŽt afficher ceci:
Consultez la page Wikipédia de Grumpy Cat pour en apprendre plus sur ce chat légendaire.
Il ne suffit que d'insérer la balise a
à l'intérieur d'un paragraphe:
<p>
Consultez la <a href="https://en.wikipedia.org/wiki/Grumpy_Cat">page Wikipedia de Grumpy Cat</a> pour en apprendre plus sur ce chat légendaire.
</p>
Liens externesâ
Ce que nous venons de décrire est un lien externe: il pointe vers un site externe à celui consulté. Dans les exemples précédents, le lien pointait vers Wikipédia, un site externe:
<p>
Consultez la <a href="https://en.wikipedia.org/wiki/Grumpy_Cat">page Wikipedia de Grumpy Cat</a> pour en apprendre plus sur ce chat légendaire.
</p>
Liens internesâ
Il est possible de faire un lien vers un endroit spécifique de la page consultée ou encore vers une autre page du site consulté.
MĂȘme page (ancre)â
Lorsqu'on veut faire un lien vers une section de la mĂȘme page, on utilise ce qu'on appelle une ancre.
Par exemple, précédemment, dans la page sur les chats célÚbres, une liste des chats est présente dans le haut de la page, un peu comme une table des matiÚres.
Il serait intéressant de cliquer sur chaque nom dans la liste et diriger l'utilisateur à la bonne section. Pour cela, il suffit de:
- Assigner un identifiant à un élément HTML (l'élément cible) via l'attribut
id
.<h4 id="keyboard-cat">Keyboard Cat</h4>
- Faire référence à cet élément dans la balise
href
en utilisant l'identifiant, précédé du symbole#
<li><a href="#keyboard-card">Keyboard Cat</a></li>
Par exemple, pour l'exemple des chats célÚbres, voici une sorte de table des matiÚres utilisant des ancres pour faire des liens vers les sous-sections.
Essayez de cliquer sur les liens pour voir le comportement!.
L'attribut id
â
En HTML, lâattribut id
permet dâidentifier de façon unique un Ă©lĂ©ment dans une page.
Dans le contexte des liens, on utilise souvent id
pour crĂ©er des ancres: cliquer sur un lien fait dĂ©filer la page jusquâĂ lâĂ©lĂ©ment correspondant.
Quelques rĂšgles importantes pour les id
:
- UnicitĂ©: Une valeur d'id ne doit apparaĂźtre quâune seule fois par page HTML.
- Format: Commence par une lettre, puis lettres, chiffres, tirets (-), underscores (_), deux-points (:) ou points (.). Aucun espace.
- Casse: écrire les id en minuscule
Nommez vos id de façon descriptive (ex.: introduction
, contact-for
m, section-tarif
) pour que vos liens internes soient clairs et maintenables.
Lien vers une autre pageâ
Pour faire un lien vers une autre page... il faut au moins deux pages!
Imaginons que nous ayons deux pages:
index.html
(l'accueil du site)grumpy-cat.html
(page présentant plus d'informations sur Grumpy cat)
Remarquez des deux onglets dans l'exemple ci-bas pour voir le contenu de chacune des pages.
Pour faire un lien, on mentionne le nom du fichier html Ă charger, en utilisant un chemin relatif.
<a href="./grumpy-cat.html">Plus d'information sur Grumpy Cat</a>
Remarquez le lien ajouté ici et cliquez sur ce dernier. Vous serez redirigé vers la page de Grumpy Cat, soit grumpy-cat.html
!
Chemins relatifsâ
Lorsque vous crĂ©ez des liens vers d'autres pages de votre site, vous utilisez des chemins relatifs. Ces chemins indiquent oĂč se trouve le fichier par rapport Ă la page actuelle. C'est pourquoi on les appelle relatifs: ils sont relatifs par rapport Ă la page actuelle.
Structure d'exempleâ
Imaginons cette structure de dossiers :
mon-site/
âââ index.html
âââ contact.html
âââ pages/
âââ about.html
âââ blog/
âââ article1.html
Les diffĂ©rentes syntaxesâ
./page.html
(avec ./
)â
Par exemple, imaginez le lien relatif suivant débutant par un ./
:
<a href="./contact.html">Contact</a>
Le fichier doit ĂȘtre trouvĂ© dans le dossier courant. C'est ce que le ./
communique comme information.
Par exemple, si nous sommes dans index.html
, ce lien communique: va chercher la page contact.html
qui est dans le mĂȘme dossier que moi-mĂȘme (index.html
).
Le ./
est optionnel. En effet les deux formulations suivantes sont équivalentes:
<a href="./contact.html">Contact</a>
<a href="contact.html">Contact</a>
Bonne pratique: Utilisez ./
pour ĂȘtre explicite sur le fait que vous rĂ©fĂ©rencez le dossier courant. Cela rend votre code plus lisible et Ă©vite les confusions.
VS Code est lĂ pour vous aider! Du moment que vous entrez ./
dans l'attribut href
, un menu contextuel apparaitra, vous permettant de choisir vers quelle page faire le lien.
../page.html
(avec ../
)â
Par exemple, imaginez le lien relatif suivant débutant par ../
:
<a href="../contact.html">Contact</a>
Le fichier doit ĂȘtre trouvĂ© dans le dossier parent. C'est ce que le ../
communique comme information.
Par exemple, si nous sommes dans pages/about.html
, ce lien communique: va chercher la page contact.html
qui est dans le dossier parent Ă moi (about.html
).
L'attribut target
- ContrĂŽler l'ouverture des liensâ
L'attribut target
dans la balise <a>
dĂ©termine oĂč le lien va s'ouvrir lorsque l'utilisateur clique sur ce dernier.
Syntaxe de baseâ
<a href="https://google.com" target="_blank">Rechercher sur Google</a>
Valeurs principalesâ
target="_self"
(par dĂ©faut)â
- Le lien s'ouvre dans la mĂȘme fenĂȘtre/onglet
- Comportement normal, pas besoin de l'écrire
<a href="page2.html">Aller Ă la page 2</a>
<!-- Ăquivaut Ă : <a href="page2.html" target="_self"> -->
target="_blank"
â
- Le lien s'ouvre dans un nouvel onglet ou nouvelle fenĂȘtre
- TrĂšs utile pour les liens externes
<a href="https://google.com" target="_blank">Rechercher sur Google</a>
Quand utiliser target="_blank"
?â
-
â Liens externes (vers d'autres sites web)
-
â Documents tĂ©lĂ©chargeables (PDF ou autres)
-
â Navigation interne de votre site (gardez
_self
)
L'attribut title
- Information supplĂ©mentaire au survolâ
L'attribut title
affiche une infobulle quand l'utilisateur survole le lien avec sa souris.
Syntaxeâ
<a href="contact.html" title="Nous écrire un message">Contact</a>
Exemples pratiquesâ
Clarifier un lien courtâ
<a href="cv.pdf" title="Télécharger mon CV en PDF">Mon CV</a>
Donner plus de contexteâ
<a href="https://github.com/monprofil" title="Voir mes projets de programmation" target="_blank">GitHub</a>
Bonnes pratiques pour title
â
-
â Court et informatif (une phrase maximum)
-
â Ajoute de la valeur au texte du lien (ne pas rĂ©pĂ©ter le mĂȘme texte!)
-
â DĂ©crit la destination ou l'action
-
â Ne pas rĂ©pĂ©ter exactement le texte du lien
-
â Ăviter les textes trop longs
Ces attributs améliorent l'expérience utilisateur en donnant plus de contrÎle et d'information sur ce qui se passera en cliquant sur le lien.
Liens vers des courriels ou numĂ©ros de tĂ©lĂ©phoneâ
Lien courriel mailto
â
Il est possible de faire un lien vers un courriel avec l'attribut mailto
:
<a href="mailto:contact@exemple.com">Nous écrire</a>
Cliquer sur le lien ouvrira l'application courriel par défaut de l'utilisateur.
Lien téléphone tel
â
De façon similaire au courriel, il est possible de faire un lien vers un numéro de téléphone:
<a href="tel:+1-555-123-4567">Appeler</a>
Appuyer sur le lien demandera une confirmation à l'utilisateur pour appeler le numéro.
RĂ©capitulatif des liensâ
- Lien interne avec ancre:
<a href="#section-id">Texte</a>
- Lien interne relatif:
<a href="./page.html">Lien vers page.html dans le mĂȘme dossier</a>
- Lien externe simple:
<a href="https://exemple.com">Texte</a>
- Lien externe nouvel onglet:
<a href="https://exemple.com" target="_blank">Texte</a>
- Lien avec infobulle:
<a href="https://exemple.com" title="Description">Texte</a>
- Lien complet:
<a href="https://exemple.com" target="_blank" title="Description - s'ouvre dans un nouvel onglet">Texte</a>