如何创建:树视图

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

树视图

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

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

  • Beverages
    • Water
    • Coffee
    • Tea
      • Black Tea
      • White Tea
      • Green Tea
        • Sencha
        • Gyokuro
        • Matcha
        • Pi Lo Chun

亲自试一试

树视图

第一步 - 添加 HTML:

<ul id="myUL">
  <li><span class="caret">Beverages</span>
    
    <li>Water</li> <li>Coffee</li> <li><span class="caret">Tea</span>
      <li>Black Tea</li> <li>White Tea</li> <li><span class="caret">Green Tea</span>
      • Sencha
      • Gyokuro
      • Matcha
      • Pi Lo Chun

第二步 - 添加 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-down::before {
  transform: rotate(90deg);
}
/* သင်္ကေတ အော်စ်ကို အားနည်းထား */
.nested {
  display: none;
}
/* အသုံးပြုသူ အရိပ်/အမှူး တစ်ခု စွပ်ဆိုချိန်တွင် အသုံးပြုရာ သင်္ကေတ အော်စ်ကို ပြသထား */
.active {
  display: block;
}

တတိယပြိုင်း - ဂျာမန်စကားဝါဒ ထပ်ထည့်ပေးခြင်း

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:

实例

亲自试一试