Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kaayá Pezzuti

CSS HTML, menu subcategoria

Recommended Posts

Olá pessoal eu to com um problema, e é simples de resolver mas estou tendo dificuldades pois não queria fugir das boas maneiras!..

 

tenho um menu que contem uma subcategoria em determinado campo, mas estou tendo dificuldades com o css com ele. pois a LI da primeira UL esta interferindo na LI da 2 UL, vou postar o codigo simples para vcs verem.

 

<html>
<head>
<title>Junior Amorim</title>
<style>
*{
margin:0;
padding:0;
}
body{
	margin:0 auto;
	height:auto;
	max-width:900px;
	}
nav{
	background:#666;
	height:100px;
	}
nav ul{
	position:relative;
	float:right;
	right:50%;
	
	}	
nav ul li{
	position:relative;
	float:left;
	left:50%;
	border:1px solid #000;
	padding:5px;
	margin-right:5px;
	margin-left:5px;
	}
 .ulDois{
	margin-top:100px; 
	 }
ul{

	}	 
</style>
</head>
<body>
<nav>
	<ul>
    	<li>Menu</li>
        <li>Menu</li>
        <li>Menu
        	<ul class="ulDois">
            	<li>Vaijao</li>
                <li>Vaijao</li>
            </ul>
        </li>
        <li>Menu</li>
        <li>Menu</li>
    </ul>    
</nav>
</body>
</html>

 

eu pensei que pudesse estilizala dessa forma

NAV UL LI{

estilos aqui

}

 

e na segunda UL

pegar no css assim

NAV UL LI UL (fosse dessa forma para capturar )

 

é possivel dessa forma? procurando pelas tags uma dentro da outra?

ou preciso usar class ou id?

 

ja nesse codigo aqui eu consegui faser mas tive que usar varios ID

 

<html>
<head>
<title>Junior Amorim</title>
<style>
*{
margin:0;
padding:0;
}
body{
	margin:0 auto;
	height:auto;
	max-width:900px;
	}
nav{
	background:#666;
	height:100px;
	}
#ul1{
	float:right;
	position:relative;
	right:50%;
	}	
#ul1 li{
	left:50%;
	position:relative;
	float:left;
	border:1px solid #000;
	padding:5px;
	margin-right:5px;
	margin-left:5px;
	width:62px;
	max-width:90px;
	text-align:center;
	}
#ulDois{
	display:none;
	margin-left:-50px;
	width:80px;
	}
#ul1 li:hover  #ulDois{
	display:block;
	
	}
ul{

	}	 
</style>
</head>
<body>
<nav>
	<ul id="ul1">
    	<li>Menu</li>
        <li>Menu</li>
        <li>Menu
        	<ul id="ulDois">
            	<li>Vaijao</li>
                <li>Vaijao</li>
            </ul>
        </li>
        <li>Menu</li>
        <li>Menu</li>
    </ul>    
</nav>
</body>
</html>

 

 

 

Obrigado espero que tenha dado para entender meu probema abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pezzuti, como vai?

Sim, não só é possível, como também é uma boa prática usar a hierarquia da estrutura html para estilizar o css, segue um exemplo da forma que costumo utilizar em meus projetos:

 

<style>
ul {
float: right;
list-style: none;
margin: 20px 0 0 0;
}
ul li {
display: inline;
float: left;
margin: 0 0 0 0;
width: 150px;
}
ul li a {
font-size: 12px;
padding: 7px 0;
text-decoration: none;
text-transform: uppercase;
}
ul li a:hover {
}

ul li:hover ul {
display: block;
}
ul li ul {
background: #ccc;
border: 3px solid #fff;
display: none;
margin: 5px 0 0 -3px;
position: absolute;
padding: 0;
width: 150px;
z-index: 9999;
}
ul li ul li {
margin: 0 0 1px 0;
display: block;
width: 100%;
}
ul li ul li a {
display: block;
text-transform: none;
}
ul li ul li a:hover {
}
</style>

<ul>
<li>
<a href="#" title="">menu 1</a>
<ul>
<li><a href="#" title="">menu 1.1</a></li>
<li><a href="#" title="">menu 1.2</a></li>
<li><a href="#" title="">menu 1.3</a></li>
<li><a href="#" title="">menu 1.4</a></li>
<li><a href="#" title="">menu 1.5</a></li>
</ul>
</li>
<li>
<a href="#" title="">menu 2</a>
<ul>
<li><a href="#" title="">menu 2.1</a></li>
<li><a href="#" title="">menu 2.2</a></li>
</ul>
</li>
<li><a href="#" title="">menu 3</a></li>
<li>

<a href="#" title="">menu 4</a>
<ul>
<li><a href="#" title="">menu 4.1</a></li>
</ul>
</li>
<li><a href="#" title="">menu 5</a></li>
</ul>

 

Agora é só adaptar conforme suas necessidades, espero ter ajudado, abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Hey, usa a função para por codigos no xat, é uma escrita "<>" ali emaixo da carinha feliz. :yes:

 

@post

Jovem, procure não usar muitas classes e id's, pois suja o código e dificulta a manutenção como você já deve saber...

 

Tipo tem varias maneiras de vc pegar um li ou coisa do tipo sem ter que ficar entrando na div:

Pseudo-classes

Seletores (sem ser #id e .classes)

Seletores 2

 

Tipo, se você for um desenvolvedor que tem dedicação na boa isso vai fazer muita diferença na sua vida de desenvolvedor igual fez na minha então da uma lida que vc vai ficar muita PROfissional usando seletores ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

funcionou exatamente pois meu problema era width que nao tinha determinado ai ele quebrava o layout com esse exemplo consegui achar o problema haha

obrigadoo!!

nav{
	margin-top:-12px;
	
	overflow:hidden;
	background:#;
	}
nav ul{
/*CENTRALIZAR MENUS*/	
	left:50%;
	position:relative;
	float:left;	
	}	
nav ul li{
/*Background Gradiente*/	
background:#000;
background: -moz-linear-gradient(top,  #333 0%, #333 100%) ; /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#333), color-stop(100%,#333)) ; /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #000 0%,#333 100%) ; /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #000  0%,#333  100%) ; /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #000 0%,#333  100%) ; /* IE10+ */
background: linear-gradient(to bottom,  #000 0%, #333 100%) ; /* W3C */
	margin-left:10px;
	margin-right:10px;
	color:#FFF;
	float:left;
	padding:1px 20px 3px 20px;
	min-width:100px;
	border-radius:4px 4px 8px 8px;
	text-align:center;
	font-size:18px;
	border:solid #fff 1px;
	width:120px;
/*CENTRALIZAR MENUS*/	
	right:50%;
	position:relative;
	}
nav ul li ul{
	display:none;
	}	
nav ul li:hover{
/*Background Gradiente*/	
background:#000;
background: -moz-linear-gradient(top,  #000 0%, #787878 100%) ; /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000), color-stop(100%,#787878)) ; /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #000 0%,#787878 100%) ; /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #000  0%,#787878  100%) ; /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #000 0%,#787878  100%) ; /* IE10+ */
background: linear-gradient(to bottom,  #000 0%, #787878 100%) ; /* W3C */
	margin-left:10px;
	margin-right:10px;
	color:#FFF;
	float:left;
	padding:1px 20px 3px 20px;
	min-width:100px;
	border-radius:4px 4px 8px 8px;
	text-align:center;
	font-size:18px;
	border:solid #fff 1px;
/*CENTRALIZAR MENUS*/	
	right:50%;
	position:relative;
	}
nav ul li:hover ul{
	display:block;
}
nav ul li a{
	color:#fff;
	}	

 

meu csss é esse ai estou tentando faze-lo sem usar classe ou id para nao sujar o codigo!

 

--

 

vou estudar a fundo os seletores..!!

Obrigado pela dica e os links

 

 

só mais uma duvida.. no meu caso quando eu passo o mouse no:HOVER

 

 

 

ele desce o conteudo todo abaixo.. porque?

tentei dar position:absolute mas ai atropela tudo fica um em cima do outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.