Se quiser ler esse post em inglês, acesse: http://codepen.io/sheldonled/blog/menu-dropdown-css-3levels
É muito comum ver sites utilizando menu dropdown, mesmo que este tipo de menu seja um pouco difícil de lidar quando vamos pro mundo mobile. Se você quer um menu desses no seu site, siga os passos abaixo e crie seu próprio menu dropdown, utilizando apenas CSS.
Primeiro, defina seus links no HTML, para nosso exemplo, usaremos a tag nav do HTML5
<nav>
<ul>
<li><a href="#">Inicio</a></li>
<li><a href="#">Tutoriais</a>
<ul>
<li><a href="#">Php</a></li>
<li><a href="#">Java</a></li>
<li><a href="#">SQL</a>
<ul>
<li><a href="#">PostgreSQL</a></li>
<li><a href="#">MySql</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Redes Sociais</a>
<ul>
<li><a href="#">Facebook</a></li>
<li><a href="#">Twitter</a></li>
</ul>
</li>
<li><a href="#">Sobre</a></li>
</ul>
</nav>
Então veja que o mapa do menu ficou da seguinte maneira:
- Inicio
- Tutoriais
- Redes Sociais
- Sobre
Agora, visualizando como ficou a hierarquia de links, passamos para o CSS (Lembrando que tudo pode ser recustomizável para adequar ao seu layout):
ul {
position: absolute;
margin: 0;
list-style:none;
}
li {
display: inline-block;
padding: 5px 10px;
position: relative;
}
Setamos a configuração inicial para todas as listas (ul) e seus elementos (li). O position absolute dá uma independência às listas e sublistas. Agora vamos ao estilo-chave do menu
li:hover > ul {
display: block;
}
Estamos falando para o navegador que, ao passar o mouse sobre um item da lista (li), sua sublista ( >ul) será mostrada (display block). Mas para isso acontecer, precisamos deixa-las invisíveis (display none).
ul ul {
position: absolute;
display: none;
margin: 0;
padding: 5px 10px;
}
ul ul li {
display: block;
}
Agora sim, nosso menu já estará funcionando, porém se quiser fazer o terceiro nível funcionar corretamente, é melhor adicionar o estilo abaixo:
ul ul ul {
position: absolute;
top: 0;
left: 100%;
}
O código acima faz o 3º nível do submenu aparecer ao lado do item pai dele. Veja o resultado abaixo.
See the Pen Cfqmb by Sheldon Led (@sheldonled) on CodePen.