Criando um Menu Dropdown com CSS

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
    • Php
    • Java
    • SQL
      • PostgreSQL
      • MySql
  • Redes Sociais
    • Facebook
    • Twitter
  • 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.

eFeitíços com CSS

Pessoal, esses dias eu tava pesquisando uns efeitos de css… achei o site dum tal de Román Cortés (rsrsrs)… vejam que interessante, ele fez uma Latinha de coca-cola “3d” somente em css. Confiram:

Ele Faz coisas incríveis com css… inclusive olhá só esse outro efeito maluco:

Para mais informações, acessem o site do cara: http://www.romancortes.com/

Detalhe, só fica bom com as últimas versões dos browsers firefox, chrome e safari…