Cara membuat: Tampilan pohon

Belajar cara membuat tampilan pohon menggunakan CSS dan JavaScript.

Tampilan pohon

Tampilan pohon mewakili tampilan struktur informasi, di mana setiap item dapat memiliki banyak sub-item.

Klik panah untuk membuka atau menutup cabang pohon.

  • Beban
    • Air
    • Kopi
    • Teh
      • Teh Hitam
      • Teh Putih
      • Teh Hijau
        • Sencha
        • Gyokuro
        • Matcha
        • Pi Lo Chun

Coba sendiri

Tampilan pohon

Langkah pertama - Tambahkan HTML:

<ul id="myUL">
  <li><span class="caret">Beban</span>
    <ul class="nested">
      <li>Air</li>
      <li>Kopi</li>
      <li><span class="caret">Teh</span>
        <ul class="nested">
          <li>Teh Hitam</li>
          <li>Teh Putih</li>
          <li><span class="caret">Teh Hijau</span>
            <ul class="nested">
              <li>Sencha</li>
              <li>Gyokuro</li>
              <li>Matcha</li>
              <li>Pi Lo Chun</li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

Tahap Kedua - Tambahkan CSS:

/* Menghapus daftar ikon baku */
ul, #myUL {
  list-style-type: none;
}
/* Menghapus margin luar dan dalam dari ul induk */
#myUL {
  margin: 0;
  padding: 0;
}
/* Menata gaya caret/panah */
.caret {
  cursor: pointer;
  user-select: none; /* Mengurangi pemilihan teks */
}
/* Membuat caret/panah menggunakan unicode dan menata gayanya */
.caret::before {
  content: "\25B6";
  color: black;
  display: inline-block;
  margin-right: 6px;
}
/* Memutar caret/panah saat ikon caret/panah diklik (dengan JavaScript) */
.caret-down::before {
  transform: rotate(90deg);
}
/* Sembunyikan daftar yang tersembunyi */
.nested {
  display: none;
}
/* Menampilkan daftar yang tersembunyi saat pengguna mengklik caret/panah (dengan JavaScript) */
.active {
  display: block;
}

Tahap Ketiga - Tambahkan JavaScript:

var toggler = document.getElementsByClassName("caret");
var i;
for (i = 0; i < toggler.length; i++) {
  toggler[i].addEventListener("click", function() {
    this.parentElement.querySelector(".nested").classList.toggle("active");
    this.classList.toggle("caret-down");
  });
}

Coba sendiri

Tampilan Pohon Kotak Centang

Dalam contoh ini, kami menggunakan sebuah 'kotak suara' unicode daripada caret:

Contoh

Coba sendiri