Menu

List HTML: Bullet Point, Ordered List dan Nested List

Cara membuat list di HTML: bullet point dengan <ul>, list bernomor dengan <ol> (start, reversed, huruf dan angka Romawi), nested list, description list, serta cara mengatur atau menghapus bullet dengan CSS.

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

List HTML: ul, ol dan li

HTML punya dua list utama. <ul> (unordered list) menampilkan bullet point, dan <ol> (ordered list) menampilkan nomor. Setiap item adalah sebuah <li> (list item).

Pakai <ol> kalau urutannya punya arti (langkah, peringkat, daftar isi) dan <ul> kalau tidak. Screen reader mengumumkan keduanya sebagai list beserta jumlah itemnya, seperti "list, 3 items". Karena itu list sungguhan lebih baik daripada baris yang diawali "•" atau "1." yang diketik sendiri.

Sebuah list hanya boleh berisi elemen <li> secara langsung. Yang lain, termasuk heading, paragraf dan list lain, diletakkan di dalam sebuah <li>.

Gaya bullet point

list-style-type pada <ul> mengubah bentuk bullet. Pseudo-element ::marker mengatur gaya bullet atau nomornya sendiri, terpisah dari teksnya:

Nilai berupa string memakai teks itu sebagai bullet. "\2713 " adalah tanda centang diikuti satu spasi: spasi pertama hanya mengakhiri escape \2713. ::marker hanya menerima beberapa property, terutama color, font-size dan property font lainnya. Itu sudah cukup untuk permintaan umum "bullet berwarna" tanpa markup tambahan.

Ordered list: angka, huruf dan angka Romawi

<ol> punya beberapa atribut untuk penomorannya:

AtributContohHasil
typetype="a"a, b, c (A, i, I dan 1 juga bisa)
startstart="5"Mulai menghitung dari 5
reversedreversedMenghitung mundur
value (pada <li>)<li value="10">Item ini bernomor 10, item berikutnya melanjutkan dari situ

type tetap wajar dipakai di HTML karena hurufnya bisa punya arti ("pilih opsi B"). Untuk perubahan yang murni tampilan, CSS list-style-type: upper-alpha atau lower-roman melakukan hal yang sama.

Nested list

Sub-list diletakkan di dalam <li> tempatnya berada, sesudah teks item itu. Browser mengganti bentuk bullet di setiap tingkat: disc, lalu circle, lalu square.

Perhatikan letak </li>: item "Frontend" baru ditutup sesudah sub-listnya. Kalau ditutup sebelum <ul>, sub-list itu jadi berada langsung di dalam <ul> luar. Itu tidak valid, walaupun tampilannya hampir sama.

Ordered list bisa disarangkan dengan cara yang sama, dan penomorannya mulai lagi dari 1 di setiap sub-list. Untuk nomor seperti 1.1 dan 1.2, kamu perlu CSS counter.

Description list: dl, dt dan dd

Description list memasangkan istilah dengan deskripsinya: glosarium, rincian sebuah pesanan, pasangan mirip FAQ. <dt> adalah istilahnya dan <dd> deskripsinya:

Satu istilah boleh punya beberapa <dd>, dan beberapa <dt> boleh berbagi satu <dd>. Secara default browser memberi indentasi pada <dd>; aturan margin di atas menghapusnya. Untuk data dengan beberapa kolom, tabel lebih cocok.

List tanpa bullet: menu dan list horizontal

Menu navigasi adalah list berisi link. Hapus bullet dengan list-style: none dan indentasinya dengan padding: 0, lalu susun item dalam satu baris dengan flexbox:

Bagi screen reader, list itu tetap sebuah list ("navigation, list, 3 items"). Ada satu pengecualian: Safari dengan VoiceOver bisa menghilangkan makna list kalau bulletnya dihapus. Kalau jumlah item penting bagi penggunamu, tambahkan role="list" ke <ul>.

Jarak default

Browser memberi list margin atas dan bawah sebesar 1em dan indentasi dengan padding-inline-start: 40px, tempat bullet berada. Padding itu ada di sisi awal, jadi di bahasa yang ditulis dari kanan ke kiri, bullet dan indentasinya otomatis pindah ke sisi lain. Kalau padding dihapus, bullet pindah ke luar kotak list dan bisa terpotong; pertahankan sedikit padding atau pakai list-style-position: inside.

Kesalahan umum

  • <li> tanpa list induk. Elemen ini harus berada di dalam <ul>, <ol> atau <menu>.
  • Nested list di luar <li>-nya. Letakkan sub-list di dalam item tempatnya berada.
  • Teks atau tag lain langsung di dalam <ul>, seperti <ul><p>Note</p><li>...</li></ul>. Pindahkan ke dalam sebuah <li> atau ke luar list.
  • Mengetik bullet atau nomor sendiri dengan • dan <br>. Screen reader mendengarnya sebagai paragraf, bukan list.
  • list-style: none tanpa padding: 0, sehingga tersisa indentasi 40 piksel yang misterius.
  • Memakai <ol> demi tampilan. Kalau urutannya tidak penting, pakai <ul> lalu atur gayanya.

Pertanyaan yang sering diajukan

Bagaimana cara membuat bullet point di HTML?

Pakai unordered list: <ul> dengan satu <li> untuk setiap poin, misalnya <ul><li>Milk</li><li>Eggs</li></ul>. Browser menggambar bullet di depan setiap item dan memberi indentasi pada list.

Apa perbedaan ul dan ol?

<ul> adalah unordered list, ditampilkan dengan bullet, untuk item yang urutannya tidak penting. <ol> adalah ordered list, ditampilkan dengan nomor, untuk langkah dan peringkat yang urutannya penting. Keduanya berisi item <li>.

Bagaimana cara menghapus bullet dari list di HTML?

Atur list-style: none pada <ul> di CSS. Atur juga padding-inline-start: 0 (atau padding: 0) untuk menghapus indentasi yang ditambahkan browser untuk bullet.

Bagaimana cara memulai ordered list dari nomor lain?

Pakai atribut start: <ol start="5"> memberi item pertama nomor 5. reversed menghitung mundur, dan value pada sebuah <li> mengatur nomor item itu dan item sesudahnya.

Bagaimana cara membuat nested list di HTML?

Letakkan <ul> atau <ol> bagian dalam di dalam sebuah <li> milik list luar, sesudah teks item itu. List yang diletakkan langsung di dalam <ul> lain, di antara elemen <li>, tidak valid.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai