如何创建:树视图
学习如何使用 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>
<ul class="nested">
<li>Water</li>
<li>Coffee</li>
<li><span class="caret">Tea</span>
<ul class="nested">
<li>Black Tea</li>
<li>White Tea</li>
<li><span class="caret">Green Tea</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>
第二步 - 添加 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;
}
/* 当用户点击 caret/箭头时,显示嵌套列表(使用 JavaScript) */
.active {
display: block;
}
第三步 - 添加 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: