Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
peguei um exemplo de um menu suspenso que utiliza somente CSS, porém não estou conseguindo adaptar para a minha aplicação.
Segue abaixo:
* {
box-sizing: border-box;
}
body {
margin: 0;
}/ Configurações nivel 1/
ul.menu{ float:left; font-family:Verdana, Geneva, sans-serif; font-size:15px; padding:0 5px;}
.menu li{ float:left; width:auto; position:relative;}
.menu li a{ display:block; padding:0 20px; line-height:45px; height:45px; float:left; width:240px; transition:all 0.1s linear; }
/ Configurações nivel 2/
.menu li:hover > ul.submenu-1{ display:block; top:45px; left:0; padding:0px; width:250px; }
.menu ul.submenu-1 a{ padding:0 20px; width:250px; }
/ Configurações nivel 2/
.menu li:hover > ul.submenu-2{ display:block; top:0; padding:0px; width:250px; left:240px; }
.menu ul.submenu-2 a{ width:250px; padding:0 20px; }
/ Configurações nivel 3/
.menu li:hover > ul.submenu-3{ display:block; top:0; padding:0px; width:250px; left:240px; }
.menu ul.submenu-3 a{ width:250px; padding:0 20px; }
.column1 {
float: left;
width: 250px;
padding: 10px;
min-height: 250px;
}
.column1 a {
float: none;
color: black;
padding: 16px;
text-decoration: none;
display: block;
text-align: left;
}
.column1 a:hover {
}
.column4 {
float: right;
width: 300px;
padding: 10px;
min-height: 250px;
position:relative;
top:0px;
}
.column4 a {
float: none;
color: black;
padding: 16px;
text-decoration: none;
display: block;
text-align: left;
}
.column4 a:hover {
}
.row:after {
content: "";
display: table;
clear: both;
}
/Configurações de cores/
/nivel 1/
.menu{background:#CCC; }
.menu a{ color:#000; }
.menu li:hover > a{ color:#000; }
/nivel 2/
.submenu-1{}
.submenu-1 a{color:#000;}
.submenu-1 li:hover > a{ color:#000; }
/nivel 3/
.submenu-2{ }
.submenu-2 a{color:#000;};
.submenu-2 li:hover > a{ color:#000; }
/nivel 3/
.submenu-3{ }
.submenu-3 a{color:#000;}
.submenu-3 li:hover > a{ color:#000; }
<ul class="menu"> <!-- Esse é o 1 nivel ou o nivel principal -->
<li><a href="#">Categorias <i class="fa fa-caret-down"></i></a>
<ul class="submenu-1"> <!-- Esse é o 2 nivel ou o primeiro Drop Down -->
<li><a href="#">Departamento 1 <i class="fa fa-caret-right"></i></a>
<ul class="submenu-2"> <!-- Esse é o 3 nivel ou o Segundo Drop Down -->
<li><a href="#">Categoria 1</a></li>
<li><a href="#">Categoria 11</a></li>
<li><a href="#">Categoria 111 <i class="fa fa-caret-right"></i></a>
<ul class="submenu-3"> <!-- Esse é o 4 nivel ou o Terceiro Drop Down -->
<li><a href="#">Subcategoria 1</a></li>
<li><a href="#">Subcategoria 11</a></li>
<li><a href="#">Subcategoria 111</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Departamento 2 <i class="fa fa-caret-right"></i></a>
<ul class="submenu-2"> <!-- Esse é o 3 nivel ou o Segundo Drop Down -->
<li><a href="#">Categoria 1</a></li>
<li><a href="#">Categoria 11</a></li>
<li><a href="#">Categoria 111 <i class="fa fa-caret-right"></i></a>
<ul class="submenu-3"> <!-- Esse é o 4 nivel ou o Terceiro Drop Down -->
<li><a href="#">Subcategoria 1</a></li>
<li><a href="#">Subcategoria 11</a></li>
<li><a href="#">Subcategoria 111</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
A primeira imagem é o resultado e a segunda imagem, seria o que estou querendo fazer.
Alguém consegue me explicar o que está de errado?
Agradeço a atenção de todos!

@Megao obrigado pela resposta.
É quase isso.
Se você adicionar mais "departamentos", os demais não ficam no "topo" do menu.
Percebi que você especificou a margem TOP tanto do ul como do li, mas não teria como fazer automático? Supondo que não sabemos quando "departamentos" serão adicionados.
E na segunda imagem que adicionei, tem uma faixa azul, que seria o fundo do menu.
>
1 hora atrás, s3c0 disse:
Percebi que você especificou a margem TOP tanto do ul como do li, mas não teria como fazer automático? Supondo que não sabemos quando "departamentos" serão adicionados.
Eu editei somente o código HTML, pois meu tempo atualmente está escasso, ou seja; não me sobra tempo para interpretar o CSS da tua página.
>
1 hora atrás, s3c0 disse:
E na segunda imagem que adicionei, tem uma faixa azul, que seria o fundo do menu.
Não entendi muito bem. Tu quer que o fundo azul apareça junto com as categorias ou fique ali de maneira fixa?
Olá @Megao obrigado pela ajuda.
"Consegui" fazer o tão esperado modelo do menu, porém não consigo finalizar da forma que gostaria.
Em anexo, o menu "funcionando", porém o que não estou conseguindo fazer:
* A altura da DIV PAI seguir com a altura das DIV´s filho;
* A altura das DIV´s filho (coluna 2 e 3) também não possui altura referente a DIV PAI ou coluna1;
* A imagem ("banner") não fica no topo do menu
Segue códigos:
.i9-menu{position:absolute;z-index:102;top:auto;display:none;text-align:left;margin-top:15px;border:1px solid #d0d0d0;border-radius:3px; }
.i9-menu a{display: inline-block;}
.ul-menu{list-style-type: none; padding:20px 10px; position:absolute;background-color:#fff;box-shadow:0 1px 10px rgba(0,0,0,.1);width:1170px;margin-left:-19px;display:inline-block;float:left; height:auto; }
.li-menu{color:#000;list-style-type: none; font-size:14px;font-weight: bold; padding:5px; width:152px;}
.navPages-item:hover .i9-menu{display:block;}
#navPages ul li{list-style-type:none;}
#navPages ul li a{text-decoration:none;}
#navPages ul li a:hover{background-color:#ccc;width:152px;}
#navPages ul li > ul{display:none;}
#navPages ul li:hover > ul {display:block;margin-left: 152px;position:absolute;top:0px;padding:25px 30px ;}
<div class="navPages-container" id="menu" data-menu>
<div class="container">
<nav class="navPages" style="text-align:left;">
<ul class="navPages-list">
<li class="navPages-item">
<a class="navPages-action has-subMenu" href=""><i class="fa fa-list"></i> Categorias</a>
<div class="i9-menu" id="navPages" tabindex="-1">
<ul class="ul-menu">
<li class="li-menu">
<div><a class="navPage-subMenu-action navPages-action has-subMenu" href="glamourishtml">
<i class="fa fa-list"></i> <span>Glamouris</span> <i class="fas fa-angle-right" style="float:right; margin-right:10px;line-height:20px;"></i>
</a>
</div>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a>
<ul>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
<li><a href="#">item</a></li>
</ul>
</li>
</ul>
</li>
<li class="li-menu">
<div><a class="navPage-subMenu-action navPages-action has-subMenu" href="glamouris.html">
<i class="fa fa-list"></i> <span>Glamouris</span> <i class="fas fa-angle-right" style="float:right; margin-right:10px;line-height:20px;"></i>
</a>
</div>
</li>
<li class="li-menu">
<div><a class="navPage-subMenu-action navPages-action has-subMenu" href="glamouris.html">
<i class="fa fa-list"></i> <span>Glamouris</span> <i class="fas fa-angle-right" style="float:right; margin-right:10px;line-height:20px;"></i>
</a>
</div>
</li>
<div style="float: right; margin-right: 0; width:350px; text-align:center; postion:relative; margin-top:0px;">
<img src="departamentos/departamentos.jpg" name="categoria" style="border: 1px; solid transparent; border-radius: 3px; width:350px;">
</div>
</ul>
</div>
</li>
</ul>
</nav>
</div>
</div>
O que estaria de errado com o código?
