Używanie list w <nav> do strukturyzowania linków

Używanie list w <nav> do strukturyzowania linków

Kiedy tworzysz menu nawigacyjne w HTML, najczęściej umieszczasz je w znaczniku <nav>. Jednak sam <nav> nie wystarczy. Aby nawigacja była czytelna, semantyczna i dostępna, powinieneś używać dodatkowo list – zazwyczaj <ul> (lista nieuporządkowana).

Stosowanie list w nawigacji to najlepsza praktyka w HTML, ponieważ:

  • grupuje logicznie linki w jednej strukturze,
  • poprawia dostępność (czytniki ekranu rozpoznają listy),
  • umożliwia łatwe stylowanie za pomocą CSS,
  • zachowuje zgodność ze standardami sieciowymi (W3C).

1. Podstawowy przykład menu z listą

<nav>
  <ul>
    <li><a href="index.html">Strona główna</a></li>
    <li><a href="o-nas.html">O nas</a></li>
    <li><a href="kontakt.html">Kontakt</a></li>
  </ul>
</nav>
Efekt działania:

Każdy <li> reprezentuje jeden element menu. Wewnątrz niego znajduje się link <a>, który prowadzi do odpowiedniej sekcji lub podstrony.


2. Dlaczego nie używać tylko linków bez list?

Porównajmy dwa podejścia:

❌ Zły przykład (brak listy):
<nav>
  <a href="index.html">Strona główna</a>
  <a href="o-nas.html">O nas</a>
  <a href="kontakt.html">Kontakt</a>
</nav>

W tym przypadku:

  • brakuje logicznego pogrupowania elementów,
  • czytniki ekranu mogą nie odczytać menu jako listy,
  • trudniej jest stylować CSS (np. rozdzielić elementy, dodać marginesy).
✅ Dobry przykład (z listą):
<nav>
  <ul>
    <li><a href="index.html">Strona główna</a></li>
    <li><a href="o-nas.html">O nas</a></li>
    <li><a href="kontakt.html">Kontakt</a></li>
  </ul>
</nav>

To podejście jest bardziej przejrzyste, uniwersalne i zgodne z zasadami dobrego kodowania.


3. Listy zagnieżdżone – menu rozwijane

Jeśli chcesz dodać submenu (np. podstrony w dziale „O nas”), możesz zagnieździć listy:

<nav>
  <ul>
    <li><a href="index.html">Strona główna</a></li>
    <li>
      <a href="o-nas.html">O nas</a>
      <ul>
        <li><a href="zespol.html">Zespół</a></li>
        <li><a href="misja.html">Misja i wartości</a></li>
      </ul>
    </li>
    <li><a href="kontakt.html">Kontakt</a></li>
  </ul>
</nav>

Taką strukturę można stylizować jako rozwijane menu za pomocą CSS lub JavaScript.


✅ Podsumowanie

  • Menu w tagu <nav> powinno być tworzone z użyciem listy <ul>.
  • Każdy element menu umieszczamy w <li>, a w nim link <a>.
  • Takie podejście poprawia dostępność, semantykę i stylizację menu.
  • Można tworzyć także listy zagnieżdżone dla submenu.

🎯 Ćwiczenie w JSFiddle

Wejdź na JSFiddle i wklej poniższy kod w sekcji HTML, aby przetestować własne menu z listą:

<nav>
  <ul>
    <li><a href="#start">Start</a></li>
    <li>
      <a href="#oferta">Oferta</a>
      <ul>
        <li><a href="#web">Strony WWW</a></li>
        <li><a href="#seo">Pozycjonowanie</a></li>
      </ul>
    </li>
    <li><a href="#kontakt">Kontakt</a></li>
  </ul>
</nav>