Foros del Web » Creando para Internet » CSS »

Problema con posición de subMenu CSS

Estas en el tema de Problema con posición de subMenu CSS en el foro de CSS en Foros del Web. Buenas tardes amigos, Ando desesperado intentando crear mi propio menú horizontal con submenu horizontal tambien. Ya casi lo tengo, pero el submenú siempre me sale ...
  #1 (permalink)  
Antiguo 26/03/2013, 10:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Problema con posición de subMenu CSS

Buenas tardes amigos,

Ando desesperado intentando crear mi propio menú horizontal con submenu horizontal tambien.

Ya casi lo tengo, pero el submenú siempre me sale a la izquieda donde comieza el menú en lugar de debajo de su padre.

Aquí os deja la web que estoy preparando. http://devnew.chemagonzalez.es/

Esto me pasa concretamente cuando nos ponemos encima de contacto, que pedido me sale al principio en lugar de debajo.

Este es mi código CSS:

Código:
/* mi menú personalizado */

.nav {
	list-style: none;
	padding: 0;
	width: 100%
	overflow: hidden;
	margin: 0px;	
}

.nav li {
	float: left; 
	margin: 1px 30px 1px 1px;
	list-style:none;
	padding: 5px;
	color:#6d6e71;
	font-size: 20px;	
}

.nav li a {
	color:#6d6e71;
	}
	
.nav li a:hover,
.nav li a.hover {
	color: #21759b;	
}
	
.nav ul li:hover > ul {
	visibility:visible;
	border-top:#CCC 1px solid;	
}
.nav ul ul {
	visibility:hidden;
	position:absolute;
	top:100%;
	left:15px;
	margin-top:35px;
	min-width:10px;
	margin-bottom:5px;
	color:#21759b;
}

.nav ul ul li.hover,
.nav ul ul li:hover {
	border-bottom:#21759b 3px solid;
}
	
.nav ul ul li {	
	min-height:34px;
	height:auto !important;
	margin:0;
	padding:5px 10px;
}
Alguien sabría decirme que me falta??

Muchas gracias!!
  #2 (permalink)  
Antiguo 26/03/2013, 11:16
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problema con posición de subMenu CSS

También tengo un problema con ese mismo menú en el resto de paginas, ya que el submenú se desplaza hacia abajo y no tengo claro porqué sucede.

Muchas gracias de antemano amigos
  #3 (permalink)  
Antiguo 26/03/2013, 11:28
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Problema con posición de subMenu CSS

Deberías de acompañar el código HTML para ver cómo está estructurado.

Al elemento que contenga el submenú (el elemento padre del selector .nav ul ul) aplícale una posición relativa para que haga de contenedor.

Código CSS:
Ver original
  1. position: relative;
  #4 (permalink)  
Antiguo 26/03/2013, 11:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Respuesta: Problema con posición de subMenu CSS

Cita:
Iniciado por Bonez Ver Mensaje
Deberías de acompañar el código HTML para ver cómo está estructurado.

Al elemento que contenga el submenú (el elemento padre del selector .nav ul ul) aplícale una posición relativa para que haga de contenedor.

Código CSS:
Ver original
  1. position: relative;
Muchas gracias por tu respuesta.

En primer lugar, no adjunto el HTML ya que es un wordpress y el menú se genera por codigo php...

En segundo lugar si hago lo que me dices. Soluciona el problema pero me causa otro.
Y es, que el menú padre, crea un espacio entre los items del menú padre tan grande como lo que ocupan los items del submenú.

No se si me explico...

Ahora mismo dejé la web para que veas como queda si hago esto.

Muchas gracias

http://devnew.chemagonzalez.es/
  #5 (permalink)  
Antiguo 26/03/2013, 11:38
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Problema con posición de subMenu CSS

No me entendiste, o me expliqué mal.

Para el submenú:
Código CSS:
Ver original
  1. .nav ul ul {
  2.   visibility: hidden;
  3.   position: absolute;
  4.   top: 0;
  5.   left: 0;
  6.   margin-top: 35px;
  7.   min-width: 10px;
  8.   margin-bottom: 5px;
  9.   color: #21759b;
  10. }

Con top y con left a ajustas en qué lugar quieres el submenú. Ponle 10px a uno y 20px a otro para ver lo que pasa.

Y al contenedor de ese submenú, le tienes que aplicar la posición relativa:
Código CSS:
Ver original
  1. nav li {
  2.   float: left;
  3.   position: relative;
  4.   margin: 1px 30px 1px 1px;
  5.   list-style: none;
  6.   padding: 5px;
  7.   color: #6d6e71;
  8.   font-size: 20px;
  9. }

La posición relativa hará que los elementos internos tomen a este como referencia de contenedor. Los atrapa por decirlo de alguna forma más gráfica.
  #6 (permalink)  
Antiguo 26/03/2013, 12:59
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Respuesta: Problema con posición de subMenu CSS

Cita:
Iniciado por Bonez Ver Mensaje
No me entendiste, o me expliqué mal.

Para el submenú:
Código CSS:
Ver original
  1. .nav ul ul {
  2.   visibility: hidden;
  3.   position: absolute;
  4.   top: 0;
  5.   left: 0;
  6.   margin-top: 35px;
  7.   min-width: 10px;
  8.   margin-bottom: 5px;
  9.   color: #21759b;
  10. }

Con top y con left a ajustas en qué lugar quieres el submenú. Ponle 10px a uno y 20px a otro para ver lo que pasa.

Y al contenedor de ese submenú, le tienes que aplicar la posición relativa:
Código CSS:
Ver original
  1. nav li {
  2.   float: left;
  3.   position: relative;
  4.   margin: 1px 30px 1px 1px;
  5.   list-style: none;
  6.   padding: 5px;
  7.   color: #6d6e71;
  8.   font-size: 20px;
  9. }

La posición relativa hará que los elementos internos tomen a este como referencia de contenedor. Los atrapa por decirlo de alguna forma más gráfica.

Bien, el problema ahora, es que al poner la posición relativa, el submenú se pone vertical, y necesito que sea horizontal...creo que está cerca la solución!!

Infinitas gracias por las respuestas!
  #7 (permalink)  
Antiguo 27/03/2013, 04:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 26
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Problema con posición de subMenu CSS

Recapitulando.

Ahora mismo, el problema es que el submenú aparece vertical y necesito que sea horizontal.

Este es el CSS ahora mismo.

Código CSS:
Ver original
  1. /* mi menú personalizado */
  2.  
  3. .nav {
  4.     list-style: none;
  5.     padding: 0;
  6.     width: 100%
  7.     overflow: hidden;
  8.     margin: 0px;   
  9. }
  10.  
  11. .nav li {
  12.     float: left;
  13.   position: relative;
  14.   margin: 1px 30px 1px 1px;
  15.   list-style: none;
  16.   padding: 5px;
  17.   color: #6d6e71;
  18.   font-size: 20px;
  19.    
  20. }
  21.  
  22. .nav li li{
  23.     float: right;
  24.    
  25.    
  26.     }
  27.  
  28. .nav li a {
  29.     color:#6d6e71;
  30.     }
  31.    
  32. .nav li a:hover,
  33. .nav li a.hover {
  34.     color: #21759b;
  35. }
  36.    
  37. .nav ul {
  38.     position: relative;
  39. }
  40. .nav ul li:hover > ul {
  41.     visibility:visible;
  42.     border-top:#CCC 1px solid; 
  43. }
  44. .nav ul ul {
  45.   visibility: hidden;
  46.   position: absolute;
  47.   top: 35px;
  48.   left: 0px;
  49.   min-width: 10px;
  50.   margin-bottom: 5px;
  51.   color: #21759b;
  52. }
  53.  
  54. .nav ul ul li.hover,
  55. .nav ul ul li:hover {
  56.     border-bottom:#21759b 3px solid;
  57.    
  58. }
  59.    
  60. .nav ul ul li {
  61.     min-height:34px;
  62.     height:auto !important;
  63.     margin:0;
  64.     padding:5px 10px;
  65. }

Muchas gracias!!
  #8 (permalink)  
Antiguo 27/03/2013, 05:28
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Respuesta: Problema con posición de subMenu CSS

Échale un ojo al capitulo de posicionamiento del tutorial CSS de librosweb.es.
  #9 (permalink)  
Antiguo 27/03/2013, 20:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 12
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema con posición de subMenu CSS

Buenas!

Haciendo los siguientes cambios en tu hoja de estilos a mí ya me saldría en horizontal el submenu:

Código CSS:
Ver original
  1. .nav ul ul {
  2.     width: 520px;
  3. }
  4.  
  5. .nav ul ul li {
  6.      float:left;
  7. }

Poniendo un tamaño "width" fijo al submenú ya saldría en horizontal, con los "padding" que tienes puesto creo que sobre 520px es el mínimo que puedes poner en ese "width".

El único problema que me "salta" al ponerlo así es que justo cuando vas a cualquiera de las opciones del submenú me sale el scroll vertical, pero imagino que eso lo podrás solucionar fácilmente.

Saludos!

Etiquetas: hover, submenu
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:14.