Menus são componentes fundamentais em páginas Web, pois permitem que o usuário navegue entre diferentes áreas do sistema ou site.
Com HTML criamos a estrutura e com CSS controlamos aparência, posicionamento e comportamento.
<nav>
<ul>
<li>
<a href="#">Home</a>
</li>
</ul>
</nav>
A tag <nav> representa uma área de navegação.
| Elemento | Função |
|---|---|
| nav | Área de navegação. |
| ul | Lista do menu. |
| li | Item do menu. |
| a | Link de acesso. |
Menus normalmente não utilizam marcadores de lista.
ul {
list-style:none;
}
Utilizamos flexbox para criar menus modernos.
ul {
display:flex;
gap:20px;
}
nav a {
text-decoration:none;
color:white;
padding:15px;
}
nav {
background:#1f4e79;
}
nav a {
color:white;
}
O estado hover altera o estilo quando o usuário passa o mouse.
nav a:hover {
background:#163a5c;
}
Submenu é um menu secundário exibido dentro de uma opção principal.
Menu
├── Cursos
│ ├── HTML
│ └── CSS
│
└── Contato
<li>
Cursos
<ul>
<li>HTML</li>
<li>CSS</li>
</ul>
</li>
.submenu {
display:none;
}
Inicialmente o submenu fica oculto.
.menu li:hover .submenu {
display:block;
}
Quando o usuário passa o mouse, o submenu aparece.
.menu {
position:relative;
}
.submenu {
position:absolute;
top:100%;
}
nav ul {
display:flex;
}
nav li {
position:relative;
}
.submenu {
display:none;
position:absolute;
}
li:hover .submenu {
display:block;
}
| Tipo | Uso |
|---|---|
| Horizontal | Sites institucionais. |
| Vertical | Sistemas administrativos. |
| Dropdown | Menus com opções extras. |
| Hambúrguer | Dispositivos móveis. |
| Erro | Problema |
|---|---|
| Muitos níveis de submenu | Confunde usuário. |
| Menu sem destaque | Dificulta navegação. |
| Não testar celular | Problemas responsivos. |
| Conceito | Descrição |
|---|---|
| Menu | Organiza navegação. |
| Submenu | Opções secundárias. |
| Hover | Interação com usuário. |
| Position | Controla localização. |