Menu

CSS Underline: text-decoration, Warna, Offset, Penghapusan

Beri garis bawah pada teks dengan text-decoration, lalu atur garisnya: warna, gaya, ketebalan, dan jaraknya dari teks. Di sini juga dibahas cara menghapus garis bawah dari link, dan kapan sebaiknya tidak kamu lakukan.

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

Cara memberi garis bawah pada teks di CSS

text-decoration: underline menggambar garis di bawah teks. Garis itu memakai warna teks, kecuali kamu memberinya warna sendiri.

Baris kedua memakai shorthand text-decoration untuk jenis garis, gaya, dan warnanya, lalu mengatur ketebalan dan offset-nya dengan property masing-masing. Spesifikasinya juga memperbolehkan ketebalan ditulis di dalam shorthand, tetapi Safari membuang seluruh deklarasinya kalau kamu melakukannya, jadi tulis text-decoration-thickness secara terpisah.

Property text-decoration

PropertyNilaiDefault
text-decoration-lineunderline, overline, line-through, none (bisa digabung)none
text-decoration-stylesolid, double, dotted, dashed, wavysolid
text-decoration-colorWarna apa puncurrentColor (warna teks)
text-decoration-thicknessPanjang, persentase, auto, from-fontauto
text-underline-offsetPanjang, persentase, autoauto

text-decoration adalah shorthand untuk empat property pertama, tetapi jangan masukkan ketebalannya: Safari mengabaikan deklarasi text-decoration yang berisi ketebalan. text-underline-offset adalah property terpisah dan harus ditulis sendiri.

Gaya, warna, dan ketebalan

Memindahkan garis bawah: text-underline-offset

Secara default, garisnya berada dekat dengan huruf dan melompati bagian huruf yang turun ke bawah seperti g, p, dan y. text-underline-offset mendorongnya lebih ke bawah, yang sering kali terlihat lebih rapi pada judul dan link:

Celah di sekitar bagian huruf yang turun itu berasal dari text-decoration-skip-ink: auto, yang aktif secara default. Atur ke none untuk garis yang tidak terputus.

Link diberi garis bawah oleh stylesheet bawaan browser. text-decoration: none menghapusnya. Karena banyak pembaca mengenali link dari garis bawahnya, munculkan lagi garis itu saat hover dan saat fokus keyboard, dan beri link warna yang berbeda dari teks:

Bar navigasi dan tombol adalah tempat yang wajar untuk menghilangkan garis bawah, karena posisinya sudah menunjukkan bahwa itu "link". Di dalam paragraf teks, pertahankan garis bawahnya. Penjelasan lebih lanjut tentang state link ada di halaman hover.

Overline dan line-through

text-decoration-line juga bisa menggambar garis di atas teks atau mencoretnya, dan menerima lebih dari satu nilai:

.old-price { text-decoration: line-through; }
.both      { text-decoration-line: underline overline; }

Coretan lewat CSS hanya bersifat visual. Kalau teksnya adalah konten yang dihapus (harga yang berubah, item yang dihilangkan), tandai dengan <s> atau <del>, seperti yang ditunjukkan di halaman HTML underline, supaya maknanya ada di markup, bukan hanya di styling.

Kesalahan yang sering terjadi

  • Memakai <u> untuk garis bawah sebagai gaya. <u> untuk teks yang ditandai berbeda, misalnya salah ketik. Untuk garis bawah sebagai gaya, pakai CSS.
  • Memberi garis bawah pada teks yang bukan link. Pembaca akan mencoba mengkliknya. Untuk penekanan, pakai huruf tebal, warna, atau background.
  • Menghapus garis bawah link di teks paragraf tanpa penanda lain. Warna saja tidak cukup bagi pembaca yang tidak bisa melihat perbedaannya.
  • Mencoba menghapus garis bawah elemen induk dari child. Garis itu tidak bisa dibatalkan dari dalam. Ubah elemen induknya atau jadikan child inline-block.
  • Mengira text-underline-offset ada di dalam shorthand. Itu property tersendiri.
  • Menaruh ketebalan di dalam shorthand. text-decoration: underline 2px berfungsi di Chrome dan Firefox, tetapi Safari membuang seluruh deklarasinya. Pakai text-decoration-thickness.

Pertanyaan yang sering diajukan

Bagaimana cara memberi garis bawah pada teks di CSS?

Pakai text-decoration: underline; pada elemennya. Untuk tampilan garisnya, tambahkan text-decoration-color, text-decoration-style, text-decoration-thickness, dan text-underline-offset.

Bagaimana cara menghapus garis bawah dari link?

Atur text-decoration: none; pada elemen a. Pastikan link tetap menonjol dengan cara lain (warna ditambah garis bawah saat hover atau fokus), karena banyak pembaca mengandalkan garis bawah untuk mengenali link.

Bagaimana cara mengubah warna garis bawah?

Pakai text-decoration-color, atau shorthand-nya: text-decoration: underline #f59e0b;. Tanpa itu, garisnya memakai warna teks.

Bagaimana cara menambah jarak antara teks dan garis bawahnya?

Pakai text-underline-offset, misalnya text-underline-offset: 4px;. Nilai yang lebih besar memindahkan garisnya lebih jauh di bawah teks.

Kenapa aku tidak bisa menghapus garis bawah dari elemen child?

Garis bawah yang digambar oleh elemen induk dilukis melintasi child-nya dan tidak bisa dihapus dari dalam child. Hapus garis itu di elemen yang mengaturnya, atau ubah child menjadi display: inline-block, yang tidak terjangkau dekorasi elemen induk.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai