Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] menu desplegable, se superponen los li.

Estas en el tema de menu desplegable, se superponen los li. en el foro de CSS en Foros del Web. Hola, hago un menu desplegable para la pagina, arriba, pero al desplegarse el submenu, si le pongo "position:absolute", me desplega el sub menu pero solo ...
  #1 (permalink)  
Antiguo 27/05/2013, 10:50
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
menu desplegable, se superponen los li.

Hola, hago un menu desplegable para la pagina, arriba, pero al desplegarse el submenu, si le pongo "position:absolute", me desplega el sub menu pero solo se me ve el ultimo de la lista del submenu, como si se subpusieran todos los li anteriores debajo del ultimo de la lista, no se.. Me gustaria simplemente saber que puedo hacer para que se me vean todos los componentes de la lista desplegable. Saludos y gracias¡


Código HTML:
Ver original
  1. <nav class="nav-prin">
  2.           <ul>
  3.             <li class="fade"><a href="index.html">Inicio</a></li>
  4.              <li class="fade"><a href="lenguajes.html">Lenguajes</a>
  5.  
  6.                   <ul>
  7.                             <li><a href="">xxx</a></li>
  8.                             <li><a href="">xxx</a></li>
  9.                             <li><a href="">xxx</a></li>
  10.                          <li><a href="">xxx</a></li>
  11.                             <li><a href="">xxx</a></li>
  12.                             <li><a href="">xxx</a></li>
  13.  
  14.                         </ul>
  15.              </li>
  16.          
  17.           <li class="fade"><a href="index.html">Diseño</a></li>
  18.           <li class="fade"><a href="index.html">Articulos</a></li>
  19.           <li class="fade"><a href="index.html">Archivos</a></li>
  20.           <li class="fade"><a href="index.html">Contacto</a></li>
  21.           </ul>
  22.  
  23.        </nav>

Código CSS:
Ver original
  1. .nav-prin ul>li {
  2.      background: #a61700;
  3.      color: #ffa040;
  4.      display: inline-block;
  5.      font-weight: bold;
  6.      margin-left: 0.01em;
  7.      padding: 0.25em 0;
  8.      vertical-align: top;
  9.      text-align: center;
  10.      width: 16.3%;
  11.      
  12. }
  13. .nav-prin ul>li:hover{
  14.      background:#ff7d13;
  15.      color: #a61700;
  16.      display: inline-block;
  17.      font-weight: bold;
  18.      margin-left: 0.01em;
  19.      padding: 0.25em 0;
  20.      vertical-align: top;
  21.      text-align: center;
  22.      width: 16.3%;
  23.      
  24. }
  25. .nav-prin ul li ul li {
  26.     background: yellow;
  27.     display: block;
  28.     display: none;
  29.    
  30.  
  31. }
  32. .nav-prin ul li:hover ul li {
  33.     background: yellow;
  34.     display: block;
  35.     position: absolute;
  36.  
  37. }
  #2 (permalink)  
Antiguo 27/05/2013, 11:12
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: menu desplegable, se superponen los li.

Código CSS:
Ver original
  1. .nav-prin ul li:hover ul li {
  2.     background: yellow;
  3.     display: block;
  4.     position: absolute;

¿Y para que tienes puesto position:absolute;?
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #3 (permalink)  
Antiguo 27/05/2013, 13:28
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: menu desplegable, se superponen los li.

Cita:
Iniciado por alberto510a Ver Mensaje
Código CSS:
Ver original
  1. .nav-prin ul li:hover ul li {
  2.     background: yellow;
  3.     display: block;
  4.     position: absolute;

¿Y para que tienes puesto position:absolute;?
hola, position absolute es para que el menu desplegable, cuando se desplege, no me desplaze todos los elementos de la página hacia abajo. ¿esta mal? gracias
  #4 (permalink)  
Antiguo 27/05/2013, 13:53
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
Respuesta: menu desplegable, se superponen los li.

Si te digo la verdad esa forma de hacer un menú desplegable vertical nunca la vi te dejo el código con las modificaciones que yo le puse para que funcionara y ya tu lo adaptas a tu gusto:

Código CSS:
Ver original
  1. .nav-prin ul li {
  2.      background: #a61700;
  3.      color: #ffa040;
  4.      list-style-type:none;
  5.      float:left;
  6.      padding-top:15px;
  7.      margin-left: 0.01em;
  8.      height:35px;
  9.      text-align: center;
  10.      width: 100px;
  11.    
  12.      
  13. }
  14. .nav-prin ul li:hover{
  15.      background:#ff7d13;
  16.      font-weight: bold;
  17.      
  18. }
  19. .nav-prin ul li ul li {
  20.     background: yellow;
  21.     display: none;
  22. }
  23.  
  24. .nav-prin ul li:hover ul li {
  25.     display: block;
  26.     position:relative;
  27.     top:15px;
  28.     left:-40px;
  29.  
  30. }

Saludos.
__________________
No hay preguntas tontas, sino tontos que no preguntan.
  #5 (permalink)  
Antiguo 27/05/2013, 13:59
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: menu desplegable, se superponen los li.

esta linea esta mal
Código CSS:
Ver original
  1. .nav-prin ul li:hover ul li {
  2.         background: yellow;
  3.         display: block;
  4.         position: absolute;
  5.      
  6.     }

debe de afectar solo a la lista no a los items, y puedes de paso agregar un selector para afectar solo al submenu siguiente y no a todos, ademas eliminar código innecesario
Código CSS:
Ver original
  1. .nav-prin li:hover>ul{
  2.         background: yellow;
  3.         display: block;
  4.         position: absolute;
  5.      
  6.     }


@alberto510a, si usas relative en lugar de absolute el menú al desplegarse hará que todo el contenido se desplace hacia abajo.
  #6 (permalink)  
Antiguo 28/05/2013, 10:54
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: menu desplegable, se superponen los li.

Cita:
Iniciado por ArturoGallegos Ver Mensaje
esta linea esta mal
Código CSS:
Ver original
  1. .nav-prin ul li:hover ul li {
  2.         background: yellow;
  3.         display: block;
  4.         position: absolute;
  5.      
  6.     }

debe de afectar solo a la lista no a los items, y puedes de paso agregar un selector para afectar solo al submenu siguiente y no a todos, ademas eliminar código innecesario
Código CSS:
Ver original
  1. .nav-prin li:hover>ul{
  2.         background: yellow;
  3.         display: block;
  4.         position: absolute;
  5.      
  6.     }


@alberto510a, si usas relative en lugar de absolute el menú al desplegarse hará que todo el contenido se desplace hacia abajo.

Arturo, cuando pongo sólo para las ul, o sea, como el código que me pusiste, ya no se me desplega el submenu... no puede ser, en cambio, el código que puso Alberto, lo copio y pego y me funciona perfectamente el menú desplegable tal y como yo quería, sin desplazarme los otros elementos de la página ni nada.

El caso es que no lo llego a entender, me tomo un café y lo investigo, porque entender bien como se comportan los elementos tiene su tela.

gracias a los dos¡¡

pd: me lo he puesto a mirar y estoy viendo que tiene que ver con la altura (height) que no le doy yo en el .nav-prin ul li , cuando le pongo altura al navegador, me despliega bien el menu, sin desplazarme la pagina. Tambien tengo que poner posiciion relativa abajo, en.nav-prin li:hover ul li, no absoluta....Sigo sin saber por qué....

Última edición por Iballa; 28/05/2013 a las 11:35
  #7 (permalink)  
Antiguo 28/05/2013, 12:03
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: menu desplegable, se superponen los li.

posiblemente tienes algo mas que afecta a los menús, has la prueba copiando el código que expusiste aquí en un documento en blanco y veras que si funciona.
  #8 (permalink)  
Antiguo 28/05/2013, 13:45
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: menu desplegable, se superponen los li.

Cita:
Iniciado por ArturoGallegos Ver Mensaje
posiblemente tienes algo mas que afecta a los menús, has la prueba copiando el código que expusiste aquí en un documento en blanco y veras que si funciona.
He puesto el codigo que puse aquí en una nueva pagina en blanco, del sublime text, con su estilo, tal y como lo puse aquí, y me sigue pasando lo mismo. Es cuando le pongo relative y una altura al menu principal cuando me sale bien. Y estoy de acuerdo que se supone que es absolute el que ignora los demas elementos, pero es cuando pongo position relative cuando el menu me sale bien. Saludos¡
  #9 (permalink)  
Antiguo 28/05/2013, 23:07
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: menu desplegable, se superponen los li.

me parece raro, pero mira te dejo un ejemplo rápido de como se hace

http://jsfiddle.net/Ag666/js8fH/
  #10 (permalink)  
Antiguo 29/05/2013, 10:38
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: menu desplegable, se superponen los li.

Cita:
Iniciado por ArturoGallegos Ver Mensaje
me parece raro, pero mira te dejo un ejemplo rápido de como se hace

[url]http://jsfiddle.net/Ag666/js8fH/[/url]
Hola Arturo, gracias por el código, de todas formas el problema no lo tenia en desarrollar ese código, sino cuando, teniendo un menu desplegable, al desplegarse me desplazaba todos los demás elementos de la página. Cuando le pongo position absolute, pues no me pasa, pero sólo se me veia el último de la lista. Me serviria el código que pusiste si pones elementos debajo para ver que no se desplazan y el submenú queda encima. Gracias de todas maneras¡
  #11 (permalink)  
Antiguo 29/05/2013, 10:44
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: menu desplegable, se superponen los li.

cuando dices que te despliega todos quiero pensar que tienes mas de 1 sub nivel... para eso es el selector >

si tienes el sitio online comparte la url para revisarlo
  #12 (permalink)  
Antiguo 30/05/2013, 04:36
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: menu desplegable, se superponen los li.

Cita:
Iniciado por ArturoGallegos Ver Mensaje
cuando dices que te despliega todos quiero pensar que tienes mas de 1 sub nivel... para eso es el selector >

si tienes el sitio online comparte la url para revisarlo
Gracias de nuevo, ahora no lo tengo pero dentro de poco lo subiré. Saludos¡

Etiquetas: color, desplegable, hover, html
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 19:40.