Comment ajouter une ligne horizontale
Placez <hr> entre deux blocs de contenu. Il n'a pas de balise fermante :
Par défaut, la ligne occupe toute la largeur de son conteneur, a une petite marge au-dessus et en dessous, et s'affiche comme une fine bordure grise en relief inset (un bord clair et un bord foncé).
<hr> signifie horizontal rule. En HTML, il désigne une rupture thématique : un changement de sujet ou de scène à l'intérieur d'une section. Les lecteurs d'écran l'annoncent comme un séparateur. Si vous voulez seulement une ligne décorative (sous un titre, autour d'une carte), tracez-la plutôt avec une bordure CSS sur cet élément.
Styliser un hr en CSS
L'apparence par défaut vient des bordures, donc la façon fiable de styliser un <hr> est de les supprimer et de tracer vous-même une seule bordure :
| Pour changer | Utilisez |
|---|---|
| La couleur | border-top: 2px solid #2563eb (après border: none) |
| L'épaisseur | La largeur dans cette bordure, comme 6px |
| Le style | solid, dashed, dotted, double |
| La longueur | width: 40%, plus margin-inline: auto pour la centrer |
| Des extrémités arrondies | height + background + border-radius au lieu d'une bordure |
| L'espace autour | margin |
Définir seulement color: blue sur un hr change bien la ligne dans les navigateurs actuels, mais le style inset par défaut l'ombre et elle garde une hauteur de 2px. Réinitialiser la bordure vous donne exactement ce que vous demandez.
Les anciens attributs de hr
Du vieux code utilise des attributs sur la balise elle-même :
<hr size="4" width="50%" color="red" noshade align="left">
size, width, color, noshade et align sont obsolètes. Les navigateurs les appliquent encore pour que les anciennes pages s'affichent bien, mais c'est du HTML invalide, plus difficile à modifier ensuite. Remplacez-les par le CSS ci-dessus.
Un séparateur avec du texte au milieu
La ligne « ou » entre deux boutons de connexion n'est pas un <hr> (un hr ne peut pas contenir de texte). C'est une rangée flex avec une ligne tracée de chaque côté du mot :
Les deux morceaux ::before et ::after prennent chacun la moitié de l'espace libre avec flex: 1 et tracent une bordure supérieure. Remplacez or par un mot plus long et les lignes se raccourcissent pour s'adapter.
Lignes verticales
Il n'existe pas de version verticale de <hr>. Tracez une ligne verticale avec une bordure sur un côté d'un élément, ou avec un élément fin dans une rangée flex :
border-inline-start place la ligne au début du texte, c'est-à-dire à gauche en français et à droite en arabe ou en hébreu, donc la mise en page fonctionne dans les deux sens.
Erreurs fréquentes
- Écrire
</hr>.<hr>est un élément vide.<hr>ou<hr />suffit. - Utiliser
<hr>pour décorer. Les lecteurs d'écran annoncent chacun d'eux. Une ligne purement visuelle relève du CSS. - Styliser avec
colorseul. Réinitialisez la bordure avecborder: noneet définissezborder-top. - Utiliser
<br>ou des tirets bas pour tracer des lignes. Utilisez<hr>ou une bordure. Voir le retour à la ligne pour savoir à quoi sert<br>. - Utiliser des attributs obsolètes. Déplacez
size,width,coloretnoshadedans le CSS.
Questions fréquentes
Comment ajouter une ligne horizontale en HTML ?
Utilisez la balise <hr> sur sa propre ligne. C'est un élément vide sans balise fermante, et il trace une ligne sur toute la largeur de son conteneur.
Comment changer la couleur d'un hr ?
Retirez la bordure par défaut et tracez la vôtre : hr { border: none; border-top: 2px solid #2563eb; }. Définir seulement color la change aussi, mais le style inset par défaut la garde ombrée et bicolore.
Comment rendre un hr plus épais ?
Définissez la largeur de la bordure : hr { border: none; border-top: 4px solid #111827; }. L'attribut size des vieux tutoriels fonctionne encore dans les navigateurs mais il est obsolète, alors utilisez le CSS.
Que signifie hr ?
Horizontal rule (filet horizontal). En HTML actuel, il désigne une rupture thématique : un changement de sujet ou de scène entre des paragraphes. Les lecteurs d'écran l'annoncent comme un séparateur.
Comment faire une ligne verticale en HTML ?
HTML n'a pas de balise de ligne verticale. Ajoutez une bordure sur un côté d'un élément, comme border-inline-start: 2px solid #e5e7eb, ou utilisez un élément étroit avec une couleur de fond dans une rangée flex.