어떻게 만들지?: 트리 뷰
CSS와 JavaScript를 사용하여 트리 뷰를 만들어보는 방법을 배웁니다。
트리 뷰
트리 뷰는 각 항목이 여러 서브 항목을 가질 수 있는 정보의 계층 구조 뷰를 나타냅니다。
화살표를 클릭하여 트리 분기를 열거나 닫을 수 있습니다。
- Beverages
- Water
- Coffee
- Tea
- Black Tea
- White Tea
- Green Tea
- Sencha
- Gyokuro
- Matcha
- Pi Lo Chun
트리 뷰
단계 1 - 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>
제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; } /* 사용자가 caret/화살표를 클릭할 때, 내장 목록을 표시합니다 (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: