Menu

CSS line-height: wartości bez jednostek, px, em i przykłady

line-height ustala wysokość każdej linii tekstu, a więc odstęp między liniami. Dowiedz się, dlaczego liczba bez jednostki to dobry wybór domyślny, jak inaczej dziedziczą się wartości px, em i %, oraz jakie wartości sprawdzają się w tekście i nagłówkach.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

Co robi line-height

line-height ustala wysokość każdej linii tekstu. Różnica między tą wysokością a wysokością potrzebną samej czcionce jest dzielona na pół i dodawana nad literami i pod nimi, więc właśnie tak kontrolujesz odstęp między liniami.

Wszystkie trzy akapity mają czcionkę 16px. Linie mają wysokość 16px, 24px i 32px.

Wartości: bez jednostki, długość, procent, normal

WartośćPrzykładWysokość linii dla tekstu 16pxDziedziczona przez dzieci jako
Liczba1.524pxLiczba (1.5), przeliczana dla każdego elementu
Długość24px, 1.5em, 1.5rem24pxObliczona długość (24px)
Procent150%24pxObliczona długość (24px)
normalnormalZ czcionki, często około 1.2normal

Pierwszy i drugi wiersz wyglądają na jednym elemencie tak samo. Różnica pojawia się dopiero, gdy dziecko ma inny rozmiar czcionki, o czym mówi następna sekcja.

Dlaczego bez jednostki to dobry wybór domyślny

Wysokość linii 1.5em albo 150% jest zamieniana na piksele na rodzicu, a dzieci dziedziczą te piksele. Dziecko z większą czcionką dostaje wtedy linie niższe niż jego litery. 1.5 bez jednostki jest dziedziczone jako sama liczba i mnożone przez rozmiar czcionki każdego dziecka.

Oba nagłówki zawijają się na dwie linie. Pierwszy dziedziczy linie 21px przy literach 32px, więc jego linie nachodzą na siebie. Drugi dostaje linie 32 × 1.5 = 48px. Ustaw line-height raz na body jako liczbę, a większość stron nigdy nie będzie potrzebować go ponownie.

Wypróbuj wartości sam

Wypróbuj 1, 2, 30px, 200% i normal. Chrome zwraca normal jako samo słowo, a nie wartość w pikselach, bo jej rozmiar pochodzi z czcionki.

Dobre wartości dla czytelnego tekstu

  • Tekst główny: od 1.4 do 1.6. Dłuższe linie potrzebują większej interlinii, żeby oko znalazło początek następnej linii.
  • Nagłówki: od 1.1 do 1.3. Duży tekst z odstępem 1.5 wygląda jak osobne linie, a nie jeden nagłówek.
  • Przyciski i jednoliniowe etykiety: od 1 do 1.25, a wysokość daje padding.

Dla dostępności kryterium sukcesu WCAG 1.4.12 wymaga, żeby strona nadal działała, gdy czytelnik ustawi interlinię na 1.5 rozmiaru czcionki, więc unikaj stałych wysokości pól tekstowych, które by ją przycinały.

Wyśrodkowanie jednej linii tekstu w pionie

Gdy pudełko zawiera dokładnie jedną linię, line-height równe wysokości pudełka umieszcza tekst na jego pionowym środku, bo dodatkowe miejsce jest dzielone po równo nad i pod nim:

Przestaje to działać, gdy tylko tekst zawinie się na dwie linie, bo każda linia ma wtedy 40px wysokości. Wszystko, co może się zawijać, wyśrodkuj flexboxem, jak pokazuje strona o wyśrodkowaniu diva.

Skrót font

Skrócona właściwość font ustawia rozmiar i wysokość linii razem, oddzielone ukośnikiem:

body {
  font: 16px/1.5 system-ui, sans-serif; /* size 16px, line-height 1.5 */
}

Skrót resetuje każdą właściwość czcionki, której nie wymienia (w tym line-height do normal, gdy pominiesz część po ukośniku), więc pisz go przed pojedynczymi regułami font-*.

Częste błędy

  • Używanie em lub % na kontenerze. Dzieci dziedziczą stałą długość. Użyj liczby bez jednostki.
  • Stałe height na polu tekstowym. Gdy tekst się zawinie albo czytelnik zwiększy odstępy, wyleje się poza pole. Pozwól treści ustalić wysokość.
  • Zbyt ciasny tekst główny. line-height: 1 utrudnia czytanie akapitów. Zacznij od 1.5.
  • Oczekiwanie, że line-height doda odstęp między akapitami. Do tego służy margin na akapitach.
  • Poleganie na normal. Zmienia się w zależności od czcionki, więc układ przesuwa się przy zmianie czcionki.

Najczęściej zadawane pytania

Co robi line-height w CSS?

Ustala wysokość każdego pola linii tekstu. Dodatkowe miejsce ponad wysokość samej czcionki jest dzielone po równo nad literami i pod nimi, więc większe line-height oznacza większy odstęp między liniami.

Czy line-height powinno mieć jednostkę?

Zwykle nie. Wartość bez jednostki, taka jak 1.5, jest mnożona przez rozmiar czcionki każdego elementu, więc zachowuje proporcje w dzieciach o innym rozmiarze. Wartość z jednostką jest obliczana raz i dziedziczona jako stała długość.

Jakie line-height jest dobre dla tekstu?

Od 1.4 do 1.6 dla akapitów i około 1.1 do 1.3 dla dużych nagłówków. Wytyczne WCAG na poziomie AAA wymagają co najmniej 1.5 w akapitach.

Czym jest line-height: normal?

To wartość domyślna. Przeglądarka używa wartości z metryk samej czcionki, zwykle około 1.2, ale innej dla każdej czcionki, więc nie da się jej przewidzieć przy różnych czcionkach.

Jak zmienić interlinię w HTML?

HTML nie ma atrybutu do interlinii. Użyj właściwości CSS, na przykład <p style="line-height: 2;"> dla podwójnej interlinii.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ