line-height
Властивість CSS line-height
(висота лінії) задає висоту рамки-лінії за горизонтального напрямку письма. За вертикального письма вона задає ширину рамки лінії. Цю властивість заведено вживати для задання відстані між рядками тексту. Для елементів блокового рівня за горизонтального письма вона задає бажану висоту рамок ліній в межах елемента, а для незаміщених рядних елементів – задає висоту, що вживається для обчислення висоти рамки лінії.
Спробуйте його в дії
Синтаксис
/* Значення – ключове слово */
line-height: normal;
/* Значення без одиниці вимірювання – вони множаться
на розмір шрифту елемента */
line-height: 3.5;
/* Значення <length> */
line-height: 3em;
/* Значення <percentage> */
line-height: 34%;
/* Глобальні значення */
line-height: inherit;
line-height: initial;
line-height: revert;
line-height: revert-layer;
line-height: unset;
Властивість line-height
задається в один з наступних способів:
<number>
<length>
<percentage>
- ключове слово
normal
.
Значення
normal
Залежить від користувацького агента. Настільні браузери (включно з Firefox) застосовують усталене значення, котре приблизно дорівнює
1.2
, залежне відfont-family
елемента.<number>
(без одиниць вимірювання)Фактичне значення – це
число
без одиниць вимірювання, помножене на власний розмір шрифту елемента. Обчислене значення – таке саме, як задане<number>
. У більшості випадків цей варіант є рекомендованим для заданняline-height
й уникнення неочікуваних результатів, пов'язаних з успадкуванням.<length>
Задане
<length>
використовується при обчисленні висоти рамок рядка. Значення, задані в одиницях em, можуть призвести до неочікуваних результат (дивіться приклад нижче).<percentage>
Відсотки від розміру шрифту самого елемента. Обчислене значення – ці
відсотки
, помножені на обчислений розмір шрифту елемента. Відсоткові значення можуть призвести до неочікуваних результатів (дивіться другий приклад нижче).
Доступність
Для вмісту головного абзацу слід задавати line-height
мінімальне значення 1.5
. Це може допомогти людям з розладами зору, а також когнітивними негараздами, як то дислексією. Якщо сторінка масштабована для збільшення розміру тексту, то використання значення без одиниць вимірювання дає змогу мати певність, що висота рядка масштабується пропорційно.
W3C розуміння WCAG 2.1 (англ.)
Формальне визначення
Початкове значення | normal |
---|---|
Успадковується | так |
Обчислене значення | for percentage and length values, the absolute length, otherwise as specified |
Формальний синтаксис
normal | <number> | <length> | <percentage>
Приклади
Базовий приклад
/* Усі правила нижче дають однакову результівну висоту рядка */
/* число/без одиниць */
div {
line-height: 1.2;
font-size: 10pt;
}
/* довжина */
div {
line-height: 1.2em;
font-size: 10pt;
}
/* відсотки */
div {
line-height: 120%;
font-size: 10pt;
}
/* скорочення font */
div {
font:
10pt/1.2 Georgia,
"Bitstream Charter",
serif;
}
Нерідко може бути зручнішим задати line-height
шляхом використання скорочення font
, як показано вище, але це вимагає, аби також була задана властивість font-family
.
Рекомендація чисел без одиниць як значень line-height
Цей приклад показує, чому краще використовувати значення <number>
, а не <length>
. Буде два елементи <div>
. Перший div, з зеленими межами, використовуватиме значення line-height
без одиниць. Другий div, з червоними межами, використовуватиме значення line-height
, визначене в em
.
HTML
<div class="box green">
<h1>
Уникайте неочікуваних результатів, використовуючи line-height без одиниць
вимірювання.
</h1>
line-height з довжиною та відсотками мають кепську взаємодію з успадкуванням.
</div>
<div class="box red">
<h1>
Уникайте неочікуваних результатів, використовуючи line-height без одиниць
вимірювання.
</h1>
line-height з довжиною та відсотками мають кепську взаємодію з успадкуванням.
</div>
<!-- line-height першого <h1> обчислюється на основі його власного font-size (30px × 1.1) = 33px -->
<!-- line-height другого <h1> випливає з font-size червоного div (15px × 1.1) = 16.5px, мабуть, не те, що ви б хотіли -->
CSS
.green {
line-height: 1.1;
border: solid limegreen;
}
.red {
line-height: 1.1em;
border: solid red;
}
h1 {
font-size: 30px;
}
.box {
width: 18em;
display: inline-block;
vertical-align: top;
font-size: 15px;
}
Результат
Проміжок між лініями за вертикального письма
Властивість line-height
може вживатися для підлаштування проміжку між вертикальними лініями за вертикального письма.
.haiku {
border: 1px solid;
margin-bottom: 1rem;
padding: 0.5rem;
background-color: wheat;
writing-mode: vertical-rl;
}
.wide {
line-height: 2;
}
Результат
Специфікації
Сумісність із браузерами
desktop | mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
line-height
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 4 | Opera Full support 7 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 10.1 | Safari on iOS Full support 1 | Samsung Internet Full support 1.0 |
-moz-block-height
|
Chrome No support Ні | Edge No support Ні | Firefox Full support 3.6 | Internet Explorer No support Ні | Opera No support Ні | Safari No support Ні | WebView Android No support Ні | Chrome Android No support Ні | Firefox for Android Full support 4 | Opera Android No support Ні | Safari on iOS No support Ні | Samsung Internet No support Ні |