어떻게 만들지?: 트리 뷰

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:

实例

亲自试一试