如何创建:树视图

学习如何使用 CSS 和 JavaScript 创建树视图。

ຮູບແບບສາຍ

树视图表示信息的层次结构视图,其中每个项目可以有多个子项目。

单击箭头可打开或关闭树分支。

  • ກາເຈີຕະຫຼາດ
    • ນ້ຳ
    • ກາເຈີສັດ
    • ກາເຈີ
      • ກາເຈີສີດ�
      • ກາເຈີສີຂຽວ
      • ກາເຈີ
        • Sencha
        • Gyokuro
        • Matcha
        • Pi Lo Chun

亲自试一试

ຮູບແບບສາຍ

ບາງການທີ 1 - ສະໜອງ HTML:

<ul id="myUL">
  <li><span class="caret">ກາເຈີຕະຫຼາດ</span>
    <ul class="nested">
      <li>ນ້ຳ</li>
      <li>ກາເຈີສັດ</li>
      <li><span class="caret">ກາເຈີ</span>
        <ul class="nested">
          <li>ກາເຈີສີດຳ</li>
          <li>ກາເຈີສີຂຽວ</li>
          <li><span class="caret">ກາເຈີ</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>

ບາງການທີ2 - ສະເໜີ CSS:

/* ຖອນລາຍການປະກອບອອກ */
ul, #myUL {
  list-style-type: none;
}
/* ຖອນຂອບເຂດຫຼັງຄັ້ງຂອງ ul ພາຍໃນສັນຍານ */
#myUL {
  margin: 0;
  padding: 0;
}
/* ກໍານົດຮູບແບບ caret/ອອກ */
.caret {
  cursor: pointer;
  user-select: none; /* ປ້ອງກັນການເລືອກຄຳຂຽນ */
}
/* ບໍ່ມີຫົວຂໍ້ ບໍ່ສະແດງ unicode caret/ອອກ ແລະ ການກໍານົດຮູບແບບ */
.caret::before {
  content: "\25B6";
  color: black;
  display: inline-block;
  margin-right: 6px;
}
/* ບໍ່ມີຫົວຂໍ້ ບໍ່ສະແດງສຳນັກງານ caret/ອອກ (ນຳໃຊ້ JavaScript) */
.caret-down::before {
  transform: rotate(90deg);
}
/* ປິດລາຍການວາງ */
.nested {
  display: none;
}
/* ບໍ່ມີຫົວຂໍ້ ບໍ່ສະແດງລາຍການວາງ (ນຳໃຊ້ JavaScript) */
.active {
  display: block;
}

ບາງການທີ3 - ສະເໜີ 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");
  });
}

亲自试一试

ພາບເລືອກຕັ້ງວາງ

在这个例子中,我们使用一个“投票箱” unicode 而不是 caret:

实例

亲自试一试