Bootstrap mette a disposizione un componente generico per la creazione di menu di navigazione a partire da liste non ordinate ul
. Questo componente generico è contraddistinto dalla classe .nav
. All'interno di ciascun li
si definisce un link. La classe .active
designa l'elemento della navigazione attivo.
<ul class="nav"> <li class="active"><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> </ul>
Il testo e i link nei menu di navigazione ereditano le impostazioni globali. Si può però intervenire sul padding e sulla spaziatura interna dei link agendo su questa regola:
.nav > li > a { position: relative; display: block; padding: 10px 15px; }
Per modificare lo stile sull'hover questa è la regola:
.nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eeeeee; }
A partire da questa struttura di base possiamo creare i menu veri e propri aggiungendo alla classe .nav
altre classi. Se vogliamo creare una navigazione a tab aggiungiamo la classe -nav-tabs
.
<ul class="nav nav-tabs"> <li class="active"><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> </ul>
.nav-tabs
Si può intervenire su aspetti stilistici come il bordo, l'arrotondamento degli angoli e l'aspetto delle tab sull'hover agendo su queste regole:
.nav-tabs > li > a { margin-right: 2px; line-height: 1.428571429; border: 1px solid transparent; border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover { border-color: #eeeeee #eeeeee #dddddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555555; cursor: default; background-color: #ffffff; border: 1px solid #dddddd; border-bottom-color: transparent; }
Per strutturare una navigazione orizzontale si usa la classe .nav-pills
.
<ul class="nav nav-pills"> <li class="active"><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> </ul>
-nav-pills
Per modificare la forma e i colori dell'indicatore di item attivo si può agire su queste regole:
.nav-pills > li > a { border-radius: 5px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #ffffff; background-color: #428bca; }
Per creare una navigazione verticale si aggiunge alla classe .nav-pills
la classe .nav-stacked
. Un esempio è la barra a sinistra di questa reference.
<ul class="nav nav-pills nav-stacked"> <li class="active"><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li> <li><a href="#">Item 3</a></li> </ul>