Cómo crear: Vista de árbol

Aprende a usar CSS y JavaScript para crear vistas de árboles.

Vista de árbol

La vista de árbol representa una vista jerárquica de la información, donde cada elemento puede tener múltiples subelementos.

Hacer clic en la flecha para abrir o cerrar la rama del árbol.

  • Bebidas
    • Aguas
    • Café
      • Té Negro
      • Té Blanco
      • Té Verde
        • Sencha
        • Gyokuro
        • Matcha
        • Pi Lo Chun

Prueba personalmente

Vista de árbol

Paso 1 - Añadir HTML:

<ul id="myUL">
  <li><span class="caret">Bebidas</span>
    <ul class="nested">
      <li>Aguas</li>
      <li>Café</li>
      <li><span class="caret">Té</span>
        <ul class="nested">
          <li>Té Negro</li>
          <li>Té Blanco</li>
          <li><span class="caret">Té Verde</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>

Segundo - Añadir CSS:

/* Eliminar la lista de elementos por defecto */
ul, #myUL {
  list-style-type: none;
}
/* Eliminar el margen externo e interno del ul del padre */
#myUL {
  margin: 0;
  padding: 0;
}
/* Establecer el estilo del caret/flecha */
.caret {
  cursor: pointer;
  user-select: none; /* Prevenir la selección de texto */
}
/* Usar unicode para crear caret/flecha y establecer su estilo */
.caret::before {
  content: "\25B6";
  color: black;
  display: inline-block;
  margin-right: 6px;
}
/* Al hacer clic en el icono caret/flecha, rotarlo (usando JavaScript) */
.caret-down::before {
  transform: rotate(90deg);
}
/* Ocultar lista anidada */
.nested {
  display: none;
}
/* Al hacer clic en caret/flecha, mostrar lista anidada (usando JavaScript) */
.active {
  display: block;
}

Tercero - Añadir 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");
  });
}

Prueba personalmente

Cuadro de vista de árbol de casillas de verificación

En este ejemplo, usamos un 'caja de votación' unicode en lugar de un caret:

Ejemplo

Prueba personalmente