如何創建:樹視圖
學習如何使用 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: