Foros del Web » Creando para Internet » CSS »

submenu horizontal

Estas en el tema de submenu horizontal en el foro de CSS en Foros del Web. Hola chicos! Necesito vuestra ayuda con un submenu horizontal que ya tengo preparado pero que no me encaja con la celda que quiero. Tengo un ...
  #1 (permalink)  
Antiguo 17/10/2011, 06:14
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación submenu horizontal

Hola chicos! Necesito vuestra ayuda con un submenu horizontal que ya tengo preparado pero que no me encaja con la celda que quiero. Tengo un menu con cinco items y en el segundo es donde se despliega el submenu pero éste en vez de desplegarse justo debajo del segundo item, lo hace justo debajo del tercero y me estoy volviendo loca, pues no consigo dónde está el error o qué es lo que me falta agregar. Os copio y pego los códigos:

Lo que quiero es que el submenu aparezca justo debajo del segundo item. Muchas gracias por todo de antemano!!!
Saludos,
b

HTML:
Código:
<div id="nav">	
	 
	 	<ul id="navbar">
			<li><a href="agencia.html">Agencia</a></li> 
			
			<li><a href="galeria_mujeres.html">Fotos</a>
					<ul id="fotos_menu">
						<li id="sub1"><a href="galeria_mujeres.html">Mujeres</a></li> 
						<li id="sub2"><a href="galeria_hombres.html">Hombres</a></li> 
						<li id="sub3"><a href="galeria_actores.html">Actores</a></li>
						<li id="sub4"><a href="galeria_actrices.html">Actrices</a></li>
						<li id="sub5"><a href="gente_pub.html">Gente publicitaria</a></li>
						<li id="sub6"><a href="galeria_ninos.html">Ni&ntilde;os</a></li>
						<li id="sub7"><a href="galeria_ninas.html">Ni&ntilde;as</a></li>
					</ul></li>   	
			<li><a href="#">Aspirantes</a></li> 
			
			<li><a href="aviso_legal.html">Aviso legal</a></li> 
			
			<li><a href="#">Contacto</a></li> 		
		</ul>
		
		</div>
CSS:
Código:
#nav {
	width:570px; 
	height:28px;
	margin-top:10px;
}

#navbar {
	width:570px; 
	position: absolute;
    margin: 0 auto;
	padding:0;
}

#navbar li {
    list-style: none;
    float: left;
	
}

#navbar li a {
    display: block;
    float:left;
    color:black;
    font-family: 'Josefin Sans', sans-serif;
	font-weight:bold; 
	font-size:16px;
    padding:5px 25px 5px 5px;
}

#navbar li a:hover {
    background-color:#eaeaea;
}
       
#navbar li ul {
	display: none;  
	margin:0;
	padding:0;
}

#navbar li ul a {
	width:auto;
	background-color:violet;
	font-family: 'Josefin Sans', sans-serif;
	font-weight:bold; 
	font-size:13px;
    border:none;
	padding:5px 10px 5px 5px;
	float:left;
}

#navbar li ul a:hover {
    background-color:#eaeaea;
}

#navbar li:hover ul {
    position: absolute;
	display: inline;
    margin-top: 28px;
}

#navbar li:hover ul#foto_menu {
	left:auto;
}
  #2 (permalink)  
Antiguo 17/10/2011, 13:40
Avatar de RafaRG  
Fecha de Ingreso: julio-2011
Ubicación: Córdoba, España
Mensajes: 124
Antigüedad: 12 años, 9 meses
Puntos: 13
Respuesta: submenu horizontal

creo que el fallo está en esta parte:
#navbar li:hover ul {
position: absolute;
display: inline;
margin-top: 28px;

}

al poner display:inline; le indicas que se muestre en la misma línea, osea, a continuación del "segundo item". como justo al lado está el "tercer item", el submenú no tiene más remedio que apilarse justo debajo. para solucionar esto, cambia el display por este: display:block;
espero que te sirva (a mí me ha funcionado)
  #3 (permalink)  
Antiguo 17/10/2011, 21:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: submenu horizontal

Podrias probar con esto:

Index.html
Código HTML:
Ver original
  1. <script type="text/javascript" src="jquery.js"></script>
  2.     <script type="text/javascript" src="menuAcordeon.js"></script>
  3.  
  4. <div id="menu">
  5. <ul id="menuAcordeon">
  6.     <li>
  7.         <a href="#"> Categoria 1 </a>
  8.         <ul>
  9.             <li> <a href="#"> Opcion 1</a> </li>
  10.             <li> <a href="#"> Opcion 2</a> </li>
  11.             <li> <a href="#"> Opcion 3</a> </li>
  12.             <li> <a href="#"> Opcion 4</a> </li>
  13.         </ul>
  14.     </li>
  15.    
  16.     <li>
  17.         <a href="#"> Categoria 2 </a>
  18.         <ul>
  19.             <li> <a href="#"> Opcion 1</a> </li>
  20.             <li> <a href="#"> Opcion 2</a> </li>
  21.             <li> <a href="#"> Opcion 3</a> </li>
  22.             <li> <a href="#"> Opcion 4</a> </li>
  23.         </ul>
  24.     </li>
  25.    
  26.     <li>
  27.         <a href="#"> Categoria 3 </a>
  28.         <ul>
  29.             <li> <a href="#"> Opcion 1</a> </li>
  30.             <li> <a href="#"> Opcion 2</a> </li>
  31.             <li> <a href="#"> Opcion 3</a> </li>
  32.             <li> <a href="#"> Opcion 4</a> </li>
  33.         </ul>
  34.     </li>
  35.  
  36. </ul>
  37. </div>

CSS
Código CSS:
Ver original
  1. body {
  2.   font-family: Italic, Comic Sans MS, sans-serif;
  3.   font-size: 1.0em;
  4.   background-color: cyan;
  5. }
  6.  
  7.  
  8. ul#menuAcordeon, ul#menuAcordeon ul {
  9.   list-style-type:none;
  10.   margin: 0;
  11.   padding: 0;
  12.   width: 19em;
  13. }
  14.  
  15. ul#menuAcordeon a {
  16.   display: block;
  17.   text-decoration: none;   
  18. }
  19.  
  20. ul#menuAcordeon li {
  21.   margin-top: 1px;
  22. }
  23.  
  24. ul#menuAcordeon li a {
  25.   background: #03D797;
  26.   color: #2600FC;  
  27.   padding: 0.5em;
  28. -moz-border-radius: 90px;
  29. -webkit-border-radius: 5px;
  30. }
  31.  
  32. ul#menuAcordeon li a:hover {
  33.   background: #D7B303;
  34.   color: cyan;
  35. }
  36.  
  37. ul#menuAcordeon li ul li a {
  38.   background: #DF0101;
  39.   color: #04B4AE;
  40.   padding-left: 20px;
  41. }
  42.  
  43. ul#menuAcordeon li ul li a:hover {
  44.   background: ##8A2908;
  45.   border-left: 5px #000 solid;
  46.   padding-left: 15px;
  47. }
  48.  
  49.  
  50. #menu{
  51. position: absolute;
  52. left: 35%;
  53. top: 9%;
  54. }

menuAcordeon.js
Código Javascript:
Ver original
  1. function initMenu() {
  2.   $('#menuAcordeon ul').hide();
  3.   $('#menuAcordeon ul:first').show();
  4.   $('#menuAcordeon li a').click(
  5.     function() {
  6.       var checkElement = $(this).next();
  7.       if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
  8.         return false;
  9.         }
  10.       if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
  11.         $('#menuAcordeon ul:visible').slideUp('normal');
  12.         checkElement.slideDown('normal');
  13.         return false;
  14.         }
  15.       }
  16.     );
  17.   }
  18. $(document).ready(function() {initMenu();});

Los colores fueron puestos random, por asunto de ejemplo

Última edición por Kurassier; 17/10/2011 a las 21:50
  #4 (permalink)  
Antiguo 19/10/2011, 04:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 7
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: submenu horizontal

Hola RafaRG, eres un sol!!!! La verdad es que estaba tan embotada que no podía ver más allá cuál era el problema. Un simple block y ya esta! Qué maravilla jejeje
Por otro lado, Kurassier, gracias por responder también y enviar una nueva opción. La probaré a ver qué tal y ver cómo queda por no dejar :P
Saludos a los 2!
b

Etiquetas: horizontal, html, submenu, fondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:20.