Como criar um Menu Dropdown com apenas CSS
Este tutorial ensina a como criar um menu Dropdown com apenas recursos do CSS 3. Veja abaixo o resultado final:
O menu que vamos criar é composto de 3 níveis, título principal, sub categoria e sub-sub categoria. Uma vez que passar o mouse por cima do título, automaticamente é disparado o evento :hover que mostrará as sub categorias. A primeira série de sub-links aparecem embaixo da barra principal de navegação, então a segunda série de links irá aparecer horizontalmente a partir do primeiro sub item. Dê uma olhada na imagem.
Primeiro vamos precisar criar nossa estrutura HTML. Vamos utilizar a tag <nav> do HTML 5, em seguida, adicionar os links de navegação primários em uma lista desordenada.
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Tutoriais</a>
<ul>
<li><a href="#">CSS</a></li>
<li><a href="#">HTML</a></li>
<li><a href="#">JavaScript</a>
<ul>
<li><a href="#">jQuery</a></li>
<li><a href="#">Angular</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Artigos</a>
<ul>
<li><a href="#">Node.js</a></li>
<li><a href="#">MongoDB</a></li>
</ul>
</li>
<li><a href="#">Crie seu Próprio Menu</a></li>
</ul>
</nav> O resultado sem a inserção do CSS ficaria da seguinte forma:
Vamos começar com o básico, primeiro vamos apenas esconder nossos sub-links e fazê-los aparecer caso passe o mouse por cima do menu pai. Para isto, vamos utilizar o seletor :hover que, quando passado o mouse sobre o menu, os seu elementos filhos serão mostrados. Com este pequeno código já temos um resultado interessante. Passe o mouse sobre os links para ver o resultado em ação. Também centralizamos o menu.
nav ul ul {
display: none;
}
nav ul li:hover> ul {
display: block;
}
nav {
margin: 0 auto;
text-align: center;
} Agora vamos dar uma melhorada no visual adicionando cor e espaçamentos.
nav ul {
background: #efefef;
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%);
box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;
list-style: none;
position: relative;
display: inline-table;
}
nav ul:after {
content: ""; clear: both; display: block;
} Veja como está ficando até agora.
Continuando, agora vamos fazer o posicionamento dos menus, definir a cor para os sub-menus e dispor como espaços e blocos.
nav ul li {
float: left;
}
nav ul li:hover {
background: #4b545f;
background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li:hover a {
color: #fff;
}
nav ul li a {
display: block; padding: 15px 20px;
color: #757575; text-decoration: none;
} Neste ponto nosso menu começa a ficar interessante, ganhando um visual e funcionando de modo precário ainda. Agora, vamos adicionar os posicionamentos e cores. Veja que sub-menus agora ganham uma cor diferenciada e seus descendentes uma formatação para melhor apresentação.
nav ul ul {
background: #5f6975; border-radius: 0px; padding: 0;
position: absolute; top: 100%;
}
nav ul ul li {
float: none;
border-top: 1px solid #6b727c;
border-bottom: 1px solid #575f6a; position: relative;
}
nav ul ul li a {
padding: 15px 40px;
color: #fff;
}
nav ul ul li a:hover {
background: #4b545f;
} A barra de navegação está quase completa, agora ela já está eslizada mas seus sub-menus ainda apresentam algum problema de posicionamento. Eles estão herdando configurações de seus pais, vamos mudar este comportamento para os sub-menus se posicionarem ao lado de seus elementos pai. Adicione mais este código:
nav ul ul ul {
position: absolute; left: 100%; top:0;
} Resultado:
No elemento final, adicionamos uns efeitos ao fundo, veja como ficou.
Dica: Utilizando o normalize.css, você obterá uma maior compatibilidade com browsers antigos.
Boas-vindas ao WordPress. Esse é o seu primeiro post. Edite-o ou exclua-o, e então comece…
Forneça Serviços Melhores Com Informações de Localização Precisas Ofereça aos usuários as mesmas experiências de…
Sabemos que aumentar as vendas é a chave para o sucesso de qualquer negócio. Mas…
Sabemos que aumentar as vendas é a chave para o sucesso de qualquer negócio. Mas…
QRCode significa Reposta Rápida e surgiu como uma evolução dos antigos códigos de barras. Hoje…
Se você administra um negócio pessoal, familiar ou trabalha para uma grande empresa, aumentar as…