Propriété CSS line-height
Utilisez la propriété CSS line-height pour définir la hauteur des lignes de texte. Définition, valeurs et exemples.
La propriété line-height spécifie la hauteur d'une boîte de ligne, contrôlant l'espacement vertical entre les lignes de texte. C'est l'une des propriétés les plus importantes pour la lisibilité : des lignes trop serrées sont difficiles à parcourir, tandis que des lignes trop espacées donnent l'impression que le paragraphe est décousu.
Cette page couvre la syntaxe, chaque type de valeur accepté, pourquoi les valeurs sans unité sont généralement le meilleur choix, ainsi que les pièges liés à l'accessibilité et à l'héritage.
line-height se comporte différemment selon le type d'élément :
- Sur les éléments de niveau bloc, la propriété
line-heightdéfinit la hauteur de ligne minimale des boîtes de ligne à l'intérieur de l'élément. - Sur les éléments inline non remplacés, elle définit la hauteur utilisée dans le calcul de la hauteur de la boîte de ligne.
- Sur les éléments inline remplacés tels que les boutons ou d'autres éléments input,
line-heightn'affecte généralement pas le calcul de la hauteur de la boîte de ligne.
Les valeurs négatives sont valides.
La hauteur de ligne par défaut est d'environ 110 % à 120 % pour la majorité des navigateurs.
La propriété line-height définit l'interligne des lignes d'un texte. Si la valeur de line-height est supérieure à la valeur font-size d'un élément, la différence constituera l'interligne du texte.
| Valeur initiale | normal |
|---|---|
| S'applique à | Tous les éléments. |
| Hérité | Oui. |
| Animatable | Oui. La hauteur des lignes est animatable. |
| Version | CSS1 |
| Syntaxe DOM | object.style.lineHeight = "40px"; |
Syntaxe
Syntaxe de la propriété CSS line-height
line-height: normal | number | length | percentage | calc | initial | inherit;Exemple avec la valeur normal :
Exemple de la propriété CSS line-height avec la valeur normal
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div {
line-height: normal;
}
</style>
</head>
<body>
<h2>Line-height property example</h2>
<h3>line-height: normal (default)</h3>
<div>This is a paragraph with a standard line-height.
<br /> The standard line height in most browsers is about 110% to 120%.
</div>
</body>
</html>Résultat
Exemple avec la valeur length :
Exemple de la propriété CSS line-height avec la valeur px
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div {
line-height: 10px;
}
</style>
</head>
<body>
<h2>Line-height property example</h2>
<h3>line-height: 10px</h3>
<div>This is a paragraph with a specified line-height.
<br /> The line height here is set to 10 pixels.
</div>
</body>
</html>Exemple avec la valeur percentage :
Exemple de la propriété CSS line-height avec la valeur %(pourcentage)
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div {
line-height: 200%;
}
</style>
</head>
<body>
<h2>Line-height property example</h2>
<h2>line-height: 200%</h2>
<div>This is a paragraph with a bigger line-height.
<br /> The line height here is set to 200%.
</div>
</body>
</html>Exemple avec plusieurs valeurs :
Exemple de la propriété CSS line-height avec les valeurs cm, px, %(pourcentage), normal et number
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div.a {
line-height: 1;
}
div.b {
line-height: 50px;
}
div.c {
line-height: 0.5cm;
}
div.d {
line-height: 1cm;
}
div.e {
line-height: 200%;
}
div.f {
line-height: normal;
}
</style>
</head>
<body>
<h2>Line-height property example</h2>
<h3>line-height: 1</h3>
<div class="a">This is a paragraph with a specified line-height.
<br /> The line height here is set to 1.
</div>
<h3>line-height: 50px</h3>
<div class="b">This is a paragraph with a specified line-height.
<br /> The line height here is set to 50 pixels.
</div>
<h3>line-height: 0.5cm</h3>
<div class="c">This is a paragraph with a specified line-height.
<br /> The line height here is set to 0.5 centimeter.
</div>
<h3>line-height: 1cm</h3>
<div class="d">This is a paragraph with a specified line-height.
<br /> The line height here is set to 1 centimeter.
</div>
<h3>line-height: 200%</h3>
<div class="e">This is a paragraph with a bigger line-height.
<br /> The line height here is set to 200%.
</div>
<h3>line-height: normal</h3>
<div class="f">This is a paragraph with a standard line-height.
<br /> The standard line height in most browsers is about 110% to 120%.
</div>
</body>
</html>Choisir une valeur : sans unité ou avec unité
C'est la décision la plus importante lors de la définition de line-height, et elle se résume à la façon dont la valeur est héritée :
- Un nombre sans unité (par ex.
line-height: 1.5) est hérité en tant que facteur lui-même. Chaque descendant multiplie ce facteur par sa proprefont-size, de sorte que l'espacement s'adapte toujours correctement. - Une longueur ou un pourcentage (par ex.
1.5emou150%) est calculé une seule fois sur l'élément où il est déclaré, et la valeur en pixels résultante est héritée. Les descendants ayant unefont-sizedifférente conservent cette hauteur en pixels fixe, ce qui peut provoquer un chevauchement du texte.
Comparez les deux sur un parent dont l'enfant a une police plus grande :
<!DOCTYPE html>
<html>
<head>
<style>
/* Recommended: each element scales the factor by its own font-size */
.good { line-height: 1.5; }
/* Problematic: computed pixel height is inherited as-is */
.bad { line-height: 150%; }
.child { font-size: 3em; }
</style>
</head>
<body>
<div class="good">
Parent text. <span class="child">Big inherited line scales fine.</span>
</div>
<div class="bad">
Parent text. <span class="child">Big inherited line may overlap.</span>
</div>
</body>
</html>Règle générale : utilisez un nombre sans unité pour le texte courant. Optez pour une longueur fixe (px/em) uniquement lorsque vous souhaitez délibérément une boîte de ligne constante, par exemple pour centrer verticalement une seule ligne de texte en faisant correspondre line-height à la hauteur de l'élément.
Accessibilité
Le critère de succès de l'espacement du texte WCAG 1.4.12 attend que le contenu reste lisible lorsque les utilisateurs augmentent l'interligne à au moins 1,5 fois la taille de police. Un line-height sans unité de 1.5 ou plus sur le texte courant constitue une valeur par défaut sûre et accessible, et évite de casser les mises en page lorsqu'un utilisateur applique son propre espacement.
Valeurs
| Valeur | Description | Essayer |
|---|---|---|
| normal | Définit une hauteur de ligne normale. C'est la valeur par défaut de cette propriété. | Essayer » |
| length | Définit une hauteur de ligne fixe en px, cm, em, etc. | Essayer » |
| number | Définit un nombre qui est multiplié par la taille de police actuelle pour définir la hauteur de ligne. | Essayer » |
| % | Définit une hauteur de ligne en pourcentage de la taille de police actuelle. | Essayer » |
| calc | Définit une hauteur de ligne à l'aide d'un calcul. | Essayer » |
| initial | Applique la valeur par défaut de la propriété. | Essayer » |
| inherit | Hérite la propriété de son élément parent. |
Remarque : l'utilisation de l'unité em est largement recommandée pour des hauteurs de ligne scalables.