Foros del Web » Creando para Internet » CSS »

problema menu desplegable

Estas en el tema de problema menu desplegable en el foro de CSS en Foros del Web. Buenos días foreros, Resulta que tengo un problemilla con un menu desplegable en CSS, quiero hacer que los elementos del submenu tengan el mismo tamaño ...
  #1 (permalink)  
Antiguo 20/06/2012, 02:45
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta problema menu desplegable

Buenos días foreros,

Resulta que tengo un problemilla con un menu desplegable en CSS, quiero hacer que los elementos del submenu tengan el mismo tamaño que el elemento padre de una manera un poco "elegante" y no diciendole directamente la width que tiene que tener... Hay alguna manera para que estos elementos "hereden" el tamaño de elemento padre?

aqui os paso el código HTML:

<div id ="menu" class="fondo">
<ul>
<li><a href="#" class="seleccionado">Principal</a></li>
<li><a href="aprender.php">Quiero aprender ...</a>
<ul class="fondo">
<li><a href="#">Francés</a></li>
<li><a href="#">Inglés</a></li>
<li><a href="#">Alemán</a></li>
</ul>
</li>
<li><a href="muro.php">Muro</a></li>
</ul>
<div class="clear"></div>
</div>


Y el código CSS de la parte del menu horizontal:


.fondo{
background: #493a22; /* Old browsers */
background: -moz-linear-gradient(top, #493a22 0%, #cc6633 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#493a22), color-stop(100%,#cc6633)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #493a22 0%,#cc6633 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #493a22 0%,#cc6633 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #493a22 0%,#cc6633 100%); /* IE10+ */
background: linear-gradient(top, #493a22 0%,#cc6633 100%); /* W3C */
padding: .4em 0;

}
#menu ul{
margin-left: 3em;
}

#menu ul li{
display: inline;
float: left;
padding: 0.5em;
border-left: 1px solid #cc6633;
border-right: 1px solid #493a22;

font-weight: 700;
color: #f9f8f4;
}
#menu ul li ul{
display: none;
position:absolute;

}

#menu ul li:hover ul{
display:block;

margin:0;
padding:0;
margin-top:0.5em;
margin-left:-0.6em;


}
#menu ul li:hover ul li{
clear:both;
display: block;

border:none;

}
  #2 (permalink)  
Antiguo 20/06/2012, 13:51
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: problema menu desplegable

¿Quiere que su ul de segundo nivel tenga el mismo tamaño (¿Ancho? ¿alto? ¿ambos?) que el li de primer nivel (essu padre) teniendo en cuenta que la lista tendrá varias opciones (li) que desplegarán en vertical)?

Creo que debo haber comprendido mal.
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #3 (permalink)  
Antiguo 20/06/2012, 15:07
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: problema menu desplegable

Exactamente, lo único que quiero es la misma anchura, la altura no hace falta...no consigo hacerlo ... :S
  #4 (permalink)  
Antiguo 20/06/2012, 20:54
Avatar de Ruben_JD  
Fecha de Ingreso: diciembre-2003
Ubicación: Quito-Ecuador
Mensajes: 218
Antigüedad: 20 años, 4 meses
Puntos: 7
Respuesta: problema menu desplegable

Hola alonso_50, es algo complicado lo que quieres hacer sin definir el ancho de cada li, pero esto te puede servir, le modifique un poco a tu codigo.
Código CSS:
Ver original
  1. ul#menu{
  2. margin-left: 3em;
  3. }
  4.  
  5. ul#menu li{
  6. display: inline;
  7. float: left;
  8. padding: 0.5em;
  9. border-left: 1px solid #cc6633;
  10. border-right: 1px solid #493a22;
  11. background: #493a22; /* Old browsers */
  12. background: -moz-linear-gradient(top, #493a22 0%, #cc6633 100%); /* FF3.6+ */
  13. background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#493a22), color-stop(100%,#cc6633)); /* Chrome,Safari4+ */
  14. background: -webkit-linear-gradient(top, #493a22 0%,#cc6633 100%); /* Chrome10+,Safari5.1+ */
  15. background: -o-linear-gradient(top, #493a22 0%,#cc6633 100%); /* Opera 11.10+ */
  16. background: -ms-linear-gradient(top, #493a22 0%,#cc6633 100%); /* IE10+ */
  17. background: linear-gradient(top, #493a22 0%,#cc6633 100%); /* W3C */
  18. padding: .4em 0;
  19. font-weight: 700;
  20. color: #f9f8f4;
  21. }
  22. ul#menu li a{
  23.     display: block;
  24.     padding: 5px;
  25.     color: white;
  26. }
  27. ul#menu li ul{
  28. display: none;
  29. position:absolute;
  30.  
  31. }
  32.  
  33. ul#menu li:hover ul{
  34. display:block;
  35. margin:0;
  36. padding:0;
  37. margin-top:7px;/* ojo con la separacion esto puede hacer
  38.                      que el efecto sobre del boton se pierda */
  39. /*margin-left:-0.6em;*/
  40. }
  41. ul#menu li:hover ul li{
  42. clear:both;
  43. display: block;
  44. border:none;
  45. }
  46. .anchofijo{
  47.     width: 150px;
  48. }
Código HTML:
Ver original
  1. <div>
  2. <ul id ="menu">
  3. <li><a href="#" class="seleccionado">Principal</a></li>
  4. <li class="anchofijo"><a href="aprender.php">Quiero aprender ...</a>
  5. <ul>
  6. <li class="anchofijo"><a href="#">Francés</a></li>
  7. <li class="anchofijo"><a href="#">Inglés</a></li>
  8. <li class="anchofijo"><a href="#">Alemán</a></li>
  9. </ul>
  10. </li>
  11. <li><a href="muro.php">Muro</a></li>
  12. </ul>
  13. <div class="clear"></div>
  14. </div>
pruebalo y me comentas si te sirve o no.

Saludos
__________________
RubénJ. Regresando al foro despues de un par de años. A preguntar más de las novedades del foro.
  #5 (permalink)  
Antiguo 27/06/2012, 07:09
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 12
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: problema menu desplegable

Ha ido genial Ruben_ JD, al final lo conseguí!

Un saludo y muchísimas gracias!

Etiquetas: desplegable, tamaño
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 01:43.