back to top

Bootstrap menu dropdown: creare un menu a discesa

Nelle barre di navigazione possono essere inseriti elementi più complessi rispetto a dei semplici collegamenti. Uno degli elementi più comuni sono i cosidetti menu a discesa (o menu dropdown) i quali consentono di raggruppare più opzioni di menu sotto una unica voce creando, di fatto, un menu multi-livello.

In questa lezione vedremo, per prima cosa, come creare un menu a discesa autonomo e poi come inserirne uno in una barra di navigazione.

Creare un menu a discesa

Il menu a discesa si crea con il componente Bootstrap dropdown che si implementa mediante un elemento div a cui va assegnata la classe dropdown. All’interno di questo div, va inserita una lista non ordinata con classe dropdown-menu. Ogni elemento della lista costituirà una voce del nostro menu a discesa.

Per inserire un separatore fra voci di menu di ambito diverso è possibile aggiungere un elemento <li> vuoto con classe divider.

È necessario aggiungere anche un pulsante di classe btn-default dropdown-toggle da usare per aprire (e chiudere) il menu a discesa. Il pulsante deve essere “associato” al menu a discesa, racchiudendoli entrambi in un div di classe btn-group.

Vediamo il codice di quanto sin qui descritto:

<div class="btn-group">
  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
    Apri menu <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" role="menu">
    <li><a href="#">Link 1</a></li>
    <li><a href="#">Link 2</a></li>
    <li><a href="#">Link 3</a></li>
    <li class="divider"></li>
    <li><a href="#">Link 4</a></li>
  </ul>
</div>
un menu a discesa

Il menu a discesa nella barra di navigazione

Perché il menu a discesa sia visibile nella barra di navigazione, basta inserirlo nella sezione della barra in cui si trovano i collegamenti creando una voce della lista degli elementi della barra di navigazione con classe dropdown e inserendo al suo interno un collegamento di classe dropdown-toggle dal quale si possa espandere (ed in seguito contrarre) il menu a discesa.

Automaticamente anche il menu a discesa si nasconderà quando la barra viene minimizzata.

Ecco il codice della nostra navbar:

<nav class="navbar navbar-default" role="navigation">

  <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
      <span class="sr-only">Espandi barra di navigazione</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="index.html">Logo</a>
  </div>
  
  <div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav " >
      <li class="active"><a href="#">Link 1</a></li>
      <li><a href="#">Link 2</a></li>
      <li><a href="#">Link 3</a></li>
      <!-- MENU A DISCESA -->
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
        Menu a discesa <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Sub-Link 1</a></li>
          <li><a href="#">Sub-Link 2</a></li>
          <li><a href="#">Sub-Link 3</a></li>
          <li><a href="#">Sub-Link 4</a></li>
          <li><a href="#">Sub-Link 5</a></li>
        </ul>
      </li>
      <!-- MENU A DISCESA -->
    </ul>
    <p class="navbar-text navbar-right">creato da Alessandra</p>
  </div>
  
</nav>
un menu a discesa nella barra di navigazione
Pubblicitร