Cara memberi garis bawah pada teks di HTML
Ada dua cara: tag <u>, atau property CSS text-decoration: underline. Keduanya menggambar garis yang sama:
Masalah dengan garis bawah apa pun ada di baris ketiga: pembaca mengira teks bergaris bawah adalah link, lalu mengkliknya. Beri garis bawah pada teks biasa hanya kalau ada alasan yang jelas.
Arti tag u
<u> bukan tombol "garis bawah" serba guna. Di HTML saat ini, tag ini berarti teks dengan anotasi yang tidak diucapkan: tanda yang mengatakan "ada yang istimewa di sini" tanpa mengatakan apa. Penggunaan sungguhan yang umum:
- menandai salah eja (seperti yang dilakukan pengolah kata, sering dengan garis merah bergelombang),
- menandai nama diri dalam teks berbahasa Tionghoa, yang merupakan konvensi tipografi di sana.
Untuk penekanan, pakai <em> atau <strong> (lihat bold), dan untuk judul buku pakai <cite>. Kalau kamu hanya ingin tampilannya, pakai CSS.
Coretan: s dan del
HTML punya dua tag yang menggambar garis melintang di teks, dan artinya berbeda:
| Tag | Makna | Penggunaan umum |
|---|---|---|
<s> | Sudah tidak akurat atau relevan, tetap ditampilkan untuk konteks | Harga lama, jenis tiket yang habis terjual |
<del> | Dihapus dari dokumen | Suntingan, changelog, item selesai di daftar tugas |
Menandai suntingan dengan ins dan del
<ins> adalah pasangan <del>: tag ini menandai teks yang ditambahkan. Browser memberinya garis bawah secara default. Keduanya menerima datetime (kapan perubahan terjadi) dan cite (URL yang menjelaskannya):
Gaya merah dan hijau ini adalah tampilan diff yang sudah familiar. text-decoration: none pada ins menghapus garis bawah default-nya supaya tidak terlihat seperti link.
Garis bawah dan coretan dengan CSS
text-decoration mengerjakan bagian tampilannya untuk elemen apa pun: property ini menerima warna dan gaya, dan text-decoration-thickness mengatur ketebalannya. Untuk garis yang murni dekoratif, inilah alat yang tepat:
Cara menghapus garis bawah dari link, offset garis bawah, dan detail text-decoration lainnya ada di halaman CSS underline.
Aksesibilitas
Dukungan screen reader untuk <s>, <del> dan <ins> tidak konsisten: sebagian mengumumkannya sebagai dihapus atau disisipkan, banyak yang membacanya sebagai teks biasa, jadi pendengar mungkin mendengar "Price 49 dollars 29 dollars" tanpa petunjuk mana yang berlaku sekarang. Kalau perbedaannya penting, sebutkan juga dengan kata-kata, misalnya dengan teks yang disembunyikan secara visual tapi tetap dibacakan, atau cukup "Dulu 29".
Kesalahan umum
- Memberi garis bawah pada teks yang bukan link. Pembaca akan mencoba mengkliknya. Untuk menyorot, pakai teks tebal, warna atau background.
- Memakai
<u>untuk penekanan. Pakai<em>atau<strong>. - Memakai
<strike>. Tag ini sudah usang. Pakai<s>,<del>atautext-decoration: line-through. - Memakai
<s>untuk konten yang dihapus di riwayat dokumen. Itu tugas<del>, yang juga bisa mencatat kapan penghapusan terjadi. - Hanya mengandalkan garisnya untuk menyampaikan makna. Banyak screen reader tidak mengumumkannya.
Pertanyaan yang sering diajukan
Bagaimana cara memberi garis bawah pada teks di HTML?
Bungkus dengan <u>, atau terapkan text-decoration: underline di CSS. Pakai <u> hanya untuk maknanya yang spesifik (seperti menandai kata yang salah eja); untuk garis bawah yang murni tampilan, pakai CSS pada sebuah <span> atau pada elemen itu sendiri.
Bagaimana cara mencoret teks di HTML?
Pakai <s> untuk teks yang sudah tidak akurat, seperti harga lama, dan <del> untuk teks yang dihapus dalam sebuah suntingan. Keduanya menggambar garis melintang di teks. Di CSS, text-decoration: line-through menghasilkan tampilan yang sama.
Apakah tag <u> sudah usang?
Tidak. <u> dinyatakan usang di HTML 4, tapi kembali di HTML5 dengan makna baru: teks dengan anotasi non-tekstual, seperti salah eja atau nama diri dalam teks berbahasa Tionghoa. Tag ini valid, hanya saja jarang menjadi pilihan yang tepat.
Apa yang terjadi dengan tag <strike>?
<strike> sudah usang. Browser masih menggambarnya sebagai coretan, tapi itu bukan HTML yang valid. Pakai <s> atau <del> tergantung maknanya, atau text-decoration: line-through.
Apa perbedaan <s> dan <del>?
<s> menandai teks yang sudah tidak relevan atau tidak benar tapi tetap ditampilkan untuk konteks, seperti harga yang dicoret. <del> menandai teks yang dihapus dari dokumen, sering di samping <ins> yang menunjukkan penggantinya, dan bisa membawa atribut datetime dan cite.