Como criar: Menu grande

Aprenda como criar um menu grande (menu suspenso de largura total na barra de navegação).

Menu grande

Experimente pessoalmente

Crie um menu grande

Crie um menu suspenso que será exibido quando o usuário passar o mouse sobre o elemento da barra de navegação.

Primeiro passo - Adicionar 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>

Exemplo de explicação:

Você pode usar qualquer elemento para abrir a lista suspensa, por exemplo, elementos <button>, <a> ou <p>.

Use o elemento contêiner (como <div class="dropdown-content">) para criar a lista suspensa, adicione uma grade (colunas) e, em seguida, adicione os links da lista suspensa na grade.

Use o elemento <div class="dropdown"> para envolver o botão e o elemento contêiner (<div class="dropdown-content">), para posicionar corretamente a lista suspensa usando CSS.

Segundo passo - Adicionar CSS:

/* Contêiner da barra de navegação */
.navbar {
  overflow: hidden;
  background-color: #333;
  font-family: Arial;
}
/* Links dentro da barra de navegação */
.navbar a {
  float: left;
  font-size: 16px;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}
/* Contêiner da lista suspensa */
.dropdown {
  float: left;
  overflow: hidden;
}
/* Botão da lista suspensa */
.dropdown .dropbtn {
  font-size: 16px;
  border: none;
  outline: none;
  color: white;
  padding: 14px 16px;
  background-color: inherit;
  font: inherit; /* Importante para alinhamento vertical em dispositivos móveis */
  margin: 0; /* Importante para alinhamento vertical em dispositivos móveis */
}
/* Adiciona cor de fundo vermelha aos links da barra de navegação ao passar o mouse */
.navbar a:hover, .dropdown:hover .dropbtn {
  background-color: red;
}
/* Conteúdo da lista suspensa (oculto por padrão) */
.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;
}
/* Grande título de menu (se necessário) */
.dropdown-content .header {
  background: red;
  padding: 16px;
  color: white;
}
/* Exibe o menu suspenso ao passar o mouse */
.dropdown:hover .dropdown-content {
  display: block;
}
/* Cria três colunas iguais e as alinha lado a lado */
.column {
  float: left;
  width: 33.33%;
  padding: 10px;
  background-color: #ccc;
  height: 250px;
}
/* Define estilos para os links dentro da coluna */
.column a {
  float: none;
  color: black;
  padding: 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}
/* Adiciona cor de fundo ao passar o mouse */
.column a:hover {
  background-color: #ddd;
}
/* Limpa a flutuação após as colunas */
.row:after {
  content: "";
  display: table;
  clear: both;
}

Experimente pessoalmente

Exemplo de explicação:

Já definimos estilos como cor de fundo, margem interna para a barra de navegação e links da barra de navegação.

Definimos estilos como cor de fundo, margem interna para o botão do menu suspenso.

.dropdown-content Classe que contém o menu suspenso real. Ela está oculta por padrão e é exibida ao passar o mouse (veja a seguir). Ela está posicionada diretamente abaixo do botão do menu suspenso e a largura é configurada para 100%, para cobrir toda a tela.

Não usamos bordas, mas usamos box-shadow faz com que o menu suspenso pareça como uma 'carta'. Também usamos A propriedade Coloca o menu suspenso à frente de outros elementos.

:hover Seletor usado para exibir o menu suspenso quando o usuário passa o mouse sobre o botão do menu suspenso.

.column Classe usada para criar três colunas flutuantes lado a lado dentro do menu suspenso (para exibir diferentes categorias).

Menu grande responsivo

/* Layout responsivo - faz três colunas empilhadas em vez de alinhadas lado a lado */
@media screen and (max-width: 600px) {
  .column {
    width: 100%;
    height: auto;
  }
}

Experimente pessoalmente

Páginas relacionadas

Tutorial:Menu suspenso CSS

Tutorial:Como criar um menu suspenso clicável

Tutorial:Barra de navegação CSS

Tutorial:Como criar uma barra de navegação superior responsiva