Come creare: Menu grande

Impara come creare un menu grande (menu a discesa a larghezza piena nella barra di navigazione).

Menu grande

Prova tu stesso

Crea un menu grande

Crea un menu a discesa che viene visualizzato quando l'utente muove il mouse su un elemento della barra di navigazione.

Passo 1 - Aggiungi HTML:

<div class="navbar">
  <a href="#home">Home</a>
  <a href="#news">News</a>
  <div class="dropdown">
    <button class="dropbtn">Dropdown
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <div class="header">
        <h2>Mega Menu</h2>
      </div>
      <div class="row">
        <div class="column">
          <h3>Category 1</h3>
          <a href="#">Link 1</a>
          <a href="#">Link 2</a>
          <a href="#">Link 3</a>
        </div>
        <div class="column">
          <h3>Category 2</h3>
          <a href="#">Link 1</a>
          <a href="#">Link 2</a>
          <a href="#">Link 3</a>
        </div>
        <div class="column">
          <h3>Categoria 3</h3>
          <a href="#">Link 1</a>
          <a href="#">Link 2</a>
          <a href="#">Link 3</a>
        </div>
      </div>
    </div>
  </div>
</div>

Esempio di spiegazione:

Puoi usare qualsiasi elemento per aprire il menu a discesa, ad esempio <button>、<a> o <p> elementi.

Usa l'elemento contenitore (ad esempio <div class="dropdown-content">) per creare il menu a discesa, aggiungi una griglia (colonne) e aggiungi i link del menu all'interno della griglia.

Usa l'elemento <div class="dropdown"> per avvolgere il pulsante e l'elemento contenitore (ad esempio <div class="dropdown-content">) per posizionare correttamente il menu a discesa utilizzando CSS.

Secondo passaggio - Aggiungi CSS:

/* Contenitore della barra di navigazione */
.navbar {
  overflow: hidden;
  background-color: #333;
  font-family: Arial;
}
/* Link all'interno della barra di navigazione */
.navbar a {
  float: left;
  font-size: 16px;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
/* Contenitore del menu a discesa */
.dropdown {
  float: left;
  overflow: hidden;
}
/* Bottone del menu a discesa */
.dropdown .dropbtn {
  font-size: 16px;
  border: none;
  outline: none;
  color: white;
  padding: 14px 16px;
  background-color: inherit;
  font: inherit; /* Importante per allineamento verticale sui dispositivi mobili */
  margin: 0; /* Importante per allineamento verticale sui dispositivi mobili */
}
/* Aggiungi sfondo rosso ai link della barra di navigazione quando il mouse è sopra di essi */
.navbar a:hover, .dropdown:hover .dropbtn {
  background-color: red;
}
/* Contenuto della lista a discesa (nascosto per default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  width: 100%;
  left: 0;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}
/* Grand titolo del menu (se necessario) */
.dropdown-content .header {
  background: red;
  padding: 16px;
  color: white;
}
/* Visualizza il menu a tendina quando il mouse è sopra */
.dropdown:hover .dropdown-content {
  display: block;
}
/* Crea tre colonne uguali e fai sì che si fluttuino in parallelo */
.column {
  float: left;
  width: 33.33%;
  padding: 10px;
  background-color: #ccc;
  height: 250px;
}
/* Imposta lo stile per i link all'interno delle colonne */
.column a {
  float: none;
  color: black;
  padding: 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}
/* Aggiungi colore di sfondo quando il mouse è sopra */
.column a:hover {
  background-color: #ddd;
}
/* Pulisci il float dopo le colonne */
.row:after {
  content: "";
  display: table;
  clear: both;
}

Prova tu stesso

Esempio di spiegazione:

Abbiamo impostato lo stile di sfondo, il margine interno e altri stili per la barra di navigazione e i link della barra di navigazione.

Abbiamo impostato lo stile di sfondo, il margine interno e altri stili per il pulsante del menu a tendina.

.dropdown-content la classe contiene il menu a tendina effettivo. Di default è nascosto e viene visualizzato quando si passa il mouse sopra (vedi di seguito). È posizionato sotto il pulsante del menu a tendina e la larghezza è impostata al 100%, per coprire l'intero schermo.

Non utilizziamo i bordi, ma utilizziamo box-shadow proprietà, in modo che il menu a tendina sembri una "carta". Utilizziamo anche z-index Posiziona il menu a tendina davanti ad altri elementi.

:hover Il selettore viene utilizzato per visualizzare il menu a tendina quando l'utente posiziona il mouse sul pulsante del menu a tendina.

.column La classe viene utilizzata per creare tre colonne fluttuanti in parallelo all'interno del menu a tendina (per visualizzare diverse categorie).

Menu grande responsive

/* Layout responsive - fa sì che tre colonne si accalcino invece di essere disposte in modo parallelo */
@media screen and (max-width: 600px) {
  .column {
    width: 100%;
    height: auto;
  }
}

Prova tu stesso

Pagine correlate

Guida:Menu a discesa CSS

Guida:Come creare un menu a tendina cliccabile

Guida:Barra di navigazione CSS

Guida:Come creare una barra di navigazione superiore responsive