Menu

CSS Line Height: Nilai Tanpa Satuan, px, em dan Contoh

line-height mengatur tinggi setiap baris teks, sekaligus jarak antar baris. Pelajari kenapa angka tanpa satuan adalah default yang tepat, bagaimana nilai px, em, dan % diwariskan secara berbeda, serta nilai yang bagus untuk teks paragraf dan judul.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

Apa fungsi line-height

line-height mengatur tinggi setiap baris teks. Selisih antara tinggi itu dan tinggi yang dibutuhkan font itu sendiri dibagi dua lalu ditambahkan di atas dan di bawah huruf. Jadi, dengan property inilah kamu mengatur jarak antar baris.

Ketiga paragraf memakai font 16px. Tinggi barisnya 16px, 24px, dan 32px.

Nilai: tanpa satuan, panjang, persentase, normal

NilaiContohTinggi baris untuk teks 16pxDiwariskan ke child sebagai
Angka1.524pxAngkanya (1,5), dihitung ulang untuk setiap elemen
Panjang24px, 1.5em, 1.5rem24pxPanjang hasil hitungan (24px)
Persentase150%24pxPanjang hasil hitungan (24px)
normalnormalDari font, sering sekitar 1,2normal

Baris pertama dan kedua terlihat sama pada satu elemen. Perbedaannya baru terlihat kalau sebuah child punya ukuran font yang berbeda, seperti di bagian berikutnya.

Kenapa tanpa satuan adalah default yang tepat

Line height 1.5em atau 150% diubah menjadi piksel di elemen induk, lalu child mewarisi piksel itu. Akibatnya, child dengan font yang lebih besar mendapat baris yang lebih pendek dari hurufnya. Angka 1.5 tanpa satuan diwariskan sebagai angka itu sendiri, lalu dikalikan dengan ukuran font masing-masing child.

Kedua judul terbungkus menjadi dua baris. Judul pertama mewarisi baris 21px untuk huruf 32px, jadi barisnya saling tumpang tindih. Judul kedua mendapat baris 32 × 1,5 = 48px. Tetapkan line-height satu kali di body sebagai angka, dan sebagian besar halaman tidak perlu mengaturnya lagi.

Coba sendiri nilainya

Coba 1, 2, 30px, 200%, dan normal. Chrome melaporkan normal sebagai kata itu sendiri, bukan nilai piksel, karena ukurannya berasal dari font.

Nilai yang bagus untuk teks yang mudah dibaca

  • Teks paragraf: 1,4 sampai 1,6. Baris yang lebih panjang butuh line height yang lebih besar agar mata bisa menemukan awal baris berikutnya.
  • Judul: 1,1 sampai 1,3. Teks besar dengan jarak 1,5 terlihat seperti baris-baris terpisah, bukan satu judul.
  • Tombol dan label satu baris: 1 sampai 1,25, dengan padding untuk mengatur tingginya.

Untuk aksesibilitas, kriteria keberhasilan WCAG 1.4.12 mensyaratkan halaman tetap berfungsi saat pembaca mengatur line height menjadi 1,5 kali ukuran font. Jadi, hindari tinggi tetap pada kotak teks yang bisa memotong teksnya.

Menengahkan satu baris teks secara vertikal

Kalau sebuah kotak hanya berisi tepat satu baris, line-height yang sama dengan tinggi kotak akan menempatkan teks di tengah secara vertikal, karena ruang tambahannya dibagi rata di atas dan di bawah:

Cara ini gagal begitu teksnya terbungkus menjadi dua baris, karena setiap baris jadi setinggi 40px. Untuk apa pun yang bisa terbungkus, tengahkan dengan flexbox, seperti yang ditunjukkan di halaman center a div.

Shorthand font

Shorthand font mengatur ukuran dan line height sekaligus dengan garis miring:

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

Shorthand ini me-reset semua property font yang tidak disebutkan (termasuk line-height menjadi normal kalau kamu tidak menulis bagian setelah garis miring). Jadi, tulis shorthand ini sebelum aturan font-* yang terpisah.

Kesalahan yang sering terjadi

  • Memakai em atau % di container. Child mewarisi panjang yang tetap. Pakai angka tanpa satuan.
  • height tetap pada kotak teks. Saat teks terbungkus atau pembaca memperbesar jarak, teksnya meluap. Biarkan isinya yang menentukan tinggi.
  • Teks paragraf terlalu rapat. line-height: 1 membuat paragraf sulit dibaca. Mulailah dari 1,5.
  • Mengira line-height menambah jarak antar paragraf. Itu tugas margin pada paragraf.
  • Mengandalkan normal. Nilainya berubah dari font ke font, jadi layout bergeser saat font diganti.

Pertanyaan yang sering diajukan

Apa fungsi line-height di CSS?

Property ini mengatur tinggi setiap kotak baris teks. Ruang tambahan di luar tinggi font itu sendiri dibagi rata di atas dan di bawah huruf, jadi line-height yang lebih besar berarti jarak antar baris yang lebih lebar.

Apakah line-height perlu satuan?

Biasanya tidak. Nilai tanpa satuan seperti 1.5 dikalikan dengan ukuran font masing-masing elemen, jadi tetap proporsional di child yang ukuran fontnya berbeda. Nilai dengan satuan dihitung satu kali lalu diwariskan sebagai panjang yang tetap.

Berapa line-height yang bagus untuk teks paragraf?

Antara 1,4 dan 1,6 untuk paragraf, dan sekitar 1,1 sampai 1,3 untuk judul besar. Panduan AAA dari WCAG meminta minimal 1,5 untuk paragraf.

Apa itu line-height: normal?

Nilai default. Browser memakai nilai dari metrik font itu sendiri, biasanya sekitar 1,2 tetapi berbeda untuk setiap font, jadi hasilnya tidak bisa diprediksi di font yang berbeda.

Bagaimana cara mengubah spasi baris di HTML?

HTML tidak punya atribut untuk spasi baris. Pakai property CSS-nya, misalnya <p style="line-height: 2;"> untuk spasi ganda.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai