Jak stworzyć: drzewo widokowe
- Poprzednia strona Klasa aktywna
- Następna strona Usunięcie miejsc po przecinku
Naucz się, jak używać CSS i JavaScript do tworzenia drzewa widokowego.
Drzewo widokowe
Drzewo widokowe reprezentuje widok hierarchiczny informacji, gdzie każdy element może mieć wiele podpunktów.
Kliknij strzałkę, aby otworzyć lub zamknąć gałąź drzewa.
- Napoj
- Woda
- Kawa
- Herbata
- Herbata czarna
- Herbata biała
- Herbata zielona
- Sencha
- Gyokuro
- Matcha
- Pi Lo Chun
Drzewo widokowe
Krok 1 - Dodaj HTML:
<ul id="myUL"> <li><span class="caret">Napoje</span> <ul class="nested"> <li>Woda</li> <li>Kawa</li> <li><span class="caret">Herbata</span> <ul class="nested"> <li>Herbata czarna</li> <li>Herbata biała</li> <li><span class="caret">Herbata zielona</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>
Drugi krok - Dodaj CSS:
/* Usuń domyślną listę punktową */ ul, #myUL { list-style-type: none; } /* Usuń marginesy zewnętrzne i wewnętrzne z ul nadrzędnego */ #myUL { margin: 0; padding: 0; } /* Ustaw styl caret/strzałki */ .caret { cursor: pointer; user-select: none; /* Zapobiegaj wybieraniu tekstu */ } /* Użyj unicode do stworzenia caret/strzałki i ustaw jej styl */ .caret::before { content: "\25B6"; color: black; display: inline-block; margin-right: 6px; } /* Kiedy klikniesz na ikonę caret/strzałki, obróć ją (używając JavaScript) */ .caret-down::before { transform: rotate(90deg); } /* Ukryj listę zagnieżdżoną */ .nested { display: none; } /* Kiedy użytkownik kliknie caret/strzałkę, wyświetl listę zagnieżdżoną (używając JavaScript) */ .active { display: block; }
Trzeci krok - Dodaj 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("caretdown"); }); }
Rozwijany widok drzewa
W tym przykładzie używamy 'skrzynki do głosowania' unicode zamiast caret:
Przykład
- Poprzednia strona Klasa aktywna
- Następna strona Usunięcie miejsc po przecinku