Jak napisać rozwijane menu typu Accordion w HTML i CSS
Rozwijane menu typu Accordion to interaktywny element strony, który pozwala na ukrywanie i wyświetlanie treści po kliknięciu w odpowiedni nagłówek. Zwykle na początku widoczne są tylko nagłówki (np. tytuły sekcji), a po kliknięciu na dany nagłówek, rozwija się on, wyświetlając powiązany z nim tekst lub inne elementy.
Zasada działania:
- HTML – struktura akordeonu składa się z nagłówków (które są widoczne) i ukrytych sekcji (akapitów tekstu lub innych treści).
- CSS – odpowiedzialny za ukrywanie lub wyświetlanie treści po kliknięciu w nagłówek.
- JavaScript (opcjonalnie) – pozwala na interakcję, czyli otwieranie i zamykanie sekcji po kliknięciu.
W przypadku prostego rozwiązania bez JavaScriptu możemy skorzystać z techniki :checked i label, co pozwoli na stworzenie akordeonu tylko z użyciem HTML i CSS.
Przykładowy kod HTML i CSS:
HTML:
CSS:
Opis działania:
-
HTML: Każda sekcja akordeonu składa się z elementu
<input>typucheckbox, który będzie przechowywał stan rozwinięcia (zaznaczone lub niezaznaczone), z etykietą<label>skojarzoną z tym inputem (nagłówek) oraz<div class="accordion-content">, które zawiera treść sekcji. -
CSS:
- Domyślnie treść każdej sekcji (
.accordion-content) jest ukryta (display: none). - Gdy checkbox (
.accordion-input) jest zaznaczony (po kliknięciu na nagłówek), połączony z nimdivo klasie.accordion-contentstaje się widoczny (display: block). - Ukrywamy także sam checkbox (
.accordion-input), aby użytkownik nie widział kontrolki, a jedynie nagłówki.
- Domyślnie treść każdej sekcji (
-
Interakcja: Klikając w nagłówek (label), użytkownik aktywuje checkbox, co powoduje, że treść sekcji (div) się rozwija lub zwija.
Gdzie można zastosować rozwijane menu typu Accordion?
Accordion to bardzo przydatna technika w wielu przypadkach, gdzie mamy do czynienia z dużą ilością informacji, które nie muszą być od razu widoczne dla użytkownika, ale mogą być łatwo dostępne, gdy użytkownik zechce je rozwinąć. Typowe zastosowania to:
- FAQ – sekcja z najczęściej zadawanymi pytaniami.
- Dokumentacja – dla dokumentów technicznych lub instrukcji, które zawierają wiele sekcji.
- Menu nawigacyjne – dla długich menu, które zawierają podmenu.
- Formularze – sekcje formularzy, które mogą być rozwijane, aby zminimalizować przestrzeń na stronie.
- Panel administratora – rozwijane sekcje w panelu sterowania aplikacji webowej.
Zaletą tego rozwiązania jest prostota:
Dzięki wykorzystaniu czystego HTML i CSS nie potrzebujemy dodatkowego JavaScriptu, co sprawia, że jest to lekka i szybka metoda na stworzenie rozwijanego menu. Oczywiście, jeśli zależy nam na bardziej zaawansowanej funkcjonalności (np. jedno rozwinięte menu na raz), warto rozważyć dodanie JavaScriptu.
ZOBACZ RÓWNIEŻ:
