Details & Summary — HTML

Pernah liat FAQ section di website? Pertanyaan-pertanyaan ditumpuk vertikal, klik salah satu — jawabannya muncul, klik lagi — kosong lagi. Dulu efek itu butuh…

<details> bikin bagian yang bisa dibuka-tutup sendiri, kayak daftar FAQ: pertanyaannya selalu kelihatan, jawabannya muncul waktu pertanyaannya diklik. Judul yang bisa diklik itu ditulis di <summary>. Semuanya jalan tanpa JavaScript.

🧪 Tebakan cepat: kalau <summary>-nya lupa ditulis, judul apa yang muncul? Tebak dulu, jawabannya ada di bagian "Satu blok buka-tutup".

Satu blok buka-tutup

<details>
  <summary>Apa itu CSS?</summary>
  <p>CSS digunakan untuk mengatur tampilan elemen HTML.</p>
</details>

Hasilnya, halaman cuma menampilkan "Apa itu CSS?" dengan segitiga kecil di depannya. Klik sekali, jawabannya muncul. Klik lagi, tertutup.

Kalau <summary> gak ditulis, browser tetap bikin judul sendiri dengan teks bawaan "Details". Jadi selalu tulis <summary> dengan teks yang jelas.

Terbuka dari awal dengan open

<details open>
  <summary>Jam buka toko?</summary>
  <p>Setiap hari, jam 08.00 sampai 21.00.</p>
</details>

open adalah atribut tanpa nilai: cukup tulis namanya di tag pembuka <details>. Blok ini sudah terbuka waktu halaman dimuat, dan pengunjung tetap bisa menutupnya. Waktu blok dibuka atau ditutup, browser sendiri yang menambah atau menghapus open.

open milik <details>, bukan <summary>. Ditulis di <summary>, dia gak ngefek apa-apa.

Beberapa blok jadi FAQ

Tiap pertanyaan punya <details> dan <summary>-nya sendiri. Tulis blok-bloknya berurutan:

<details open>
  <summary>Pertanyaan pertama</summary>
  <p>Jawaban pertama.</p>
</details>
<details>
  <summary>Pertanyaan kedua</summary>
  <p>Jawaban kedua.</p>
</details>

Cuma blok pertama yang terbuka dari awal, karena cuma dia yang punya open.

Mau cuma satu jawaban yang terbuka dalam satu waktu? Kasih semua <details> atribut name yang sama, misalnya name="faq". Buka satu, yang lain otomatis tertutup.

⚠️ Jebakan yang sering ketemu

TL;DR: <details> membungkus blok buka-tutup, <summary> jadi judul yang bisa diklik, sisanya isi yang tersembunyi. Tanpa <summary>, browser menulis "Details". Tambah open di <details> biar terbuka dari awal. FAQ adalah beberapa <details> berurutan, satu per pertanyaan, dan name yang sama bikin cuma satu yang terbuka.

Yang akan kamu pelajari