Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] divs autoadaptables ?

Estas en el tema de divs autoadaptables ? en el foro de CSS en Foros del Web. buenas gente, estoy complicado con unos divs, que a su vez son enlaces, pero no logro que me queden ocupando el ancho total del contenedor ...
  #1 (permalink)  
Antiguo 02/12/2013, 21:59
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años
Puntos: 0
Pregunta divs autoadaptables ?

buenas gente, estoy complicado con unos divs, que a su vez son enlaces, pero no logro que me queden ocupando el ancho total del contenedor que los contiene. tengo echo algo como esto

Código HTML:
 <nav class="menu">
                        <div><a href="">Links</a><div>
                        <div><a href="">links</a><div>
                        <div><a href="">links</a><div>
                        <div><a href="">links</a><div>
                </nav> 
el css es el siguiente::

Código:
.menu a { 
    background-color: #006699;
    display:inline;
    float: left; height:80px;
    list-style-type: none;
    margin:0px auto; 
    padding: 80px 100px;
    }

.menu a:hover{
    background-color: #0099ff;
    -moz-box-shadow: 5px 4px 8px #000000;
    -webkit-box-shadow: 5px 4px 8px #000000;
    box-shadow: 5px 4px 8px #000000;
    }
alguien me puede orientar un poco para lograr lo que necesito???


muchas gracias!!! saludos!!!!
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #2 (permalink)  
Antiguo 03/12/2013, 02:49
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: divs autoadaptables ?

Bueno, lo primero sería cambiar la estructura HTML, no porque no se pueda hacer sin cambiarla, sino porque enlaces agrupados deberían de ponerse en una lista desordenada con ul.

Código HTML:
Ver original
  1. <nav>
  2.   <ul>
  3.     <li><a href="#">enlace</a></li>
  4.     <li><a href="#">enlace</a></li>
  5.     <li><a href="#">enlace</a></li>
  6.     <li><a href="#">enlace</a></li>
  7.     <li><a href="#">enlace</a></li>
  8.   </ul>
  9. </nav>

Después respecto al CSS, tienes que poner una estructura como si esos elementos fueran tablas con display: table/table-row/table-cell. Y para que cada elemento de la lista tenga el mismo ancho, tienes que fijar la estructura de la tabla con table-layout.

Código CSS:
Ver original
  1. nav {
  2.   display: table;
  3.   width: 100%;
  4.   table-layout: fixed;
  5. }
  6. nav ul {
  7.   display: table-row;
  8. }
  9. nav li {
  10.   display: table-cell;
  11.   text-align: center;
  12. }

Si adicionalmente quieres que los enlaces siempre ocupen todo el ancho dentro del elemento de la lista, entonces elimina el centrado de texto anterior quitando text-align (más que nada porque no hace falta) y creas otra regla para los enlaces para que se visualicen como elementos de bloque:

Código CSS:
Ver original
  1. nav li a {
  2.   display: block;
  3. }
  #3 (permalink)  
Antiguo 03/12/2013, 15:52
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años
Puntos: 0
Pregunta Respuesta: divs autoadaptables ?

ante nada muchas gracias por tu ayuda pzin pero creo me parece que no fui claro o me explique mal... lo que quiero lograr es que entre las 4 secciones li se ocupe el total del ancho de la pagina. como la imagen en la seccion [IMG] Uploaded with ImageShack.us[/IMG] como esta en la imagen en la parte donde dice "contacto" y estan las distintas figuras a los costados. eso seria el menu completo.


--------------------------------------------------------edito---------------------------------------------------------

creo que lo resolvi. y me explique bien anteriormente. lo que hice fue lo siguiente: segui la instruccion de pzin y luego para darte el tamaño grande que encesitaba añadi lo siguiente al codigo css (cualquier cosa corrijanme si algo esta mal)::.

Código:
nav{
    display: table;
    width:100%;
    table-layout: fixed;
}

nav ul {
    display: table-row;
}

nav li { 
    background-color: #006699;
    display:table-cell;

}

nav li a {
    display: block;
    padding: 80px 50%;  /*para hacer que se ocupe el total del ancho del nav*/
    text-decoration: none;
}

nav li a:hover{
    background: #0099ff;
    display: block;
    text-decoration: none;
}
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)

Última edición por ignacio85r; 03/12/2013 a las 16:22
  #4 (permalink)  
Antiguo 04/12/2013, 03:52
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: divs autoadaptables ?

Cita:
Iniciado por ignacio85r Ver Mensaje
creo que lo resolvi. y me explique bien anteriormente.
Si, te explicaste bien, yo me explique bien, luego entendiste algo mal supongo.

Ese padding que pusiste no hace que ocupe el ancho total de nada. Supongo que te refieres a alguna otra cosa.
  #5 (permalink)  
Antiguo 04/12/2013, 19:53
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años
Puntos: 0
Respuesta: divs autoadaptables ?

es que si quito ese padding me sucede que se achica el contenedor quedando del tamaño del texto y me queda muy pequeño el menu
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #6 (permalink)  
Antiguo 09/12/2013, 11:53
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años
Puntos: 0
Respuesta: divs autoadaptables ?

entonces.. como puedo logralo????
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #7 (permalink)  
Antiguo 09/12/2013, 16:57
 
Fecha de Ingreso: mayo-2013
Mensajes: 207
Antigüedad: 11 años
Puntos: 31
Respuesta: divs autoadaptables ?

Haces lo más complicado para rellenar el espacio, con lo facil que puede ser usar porcentajes en el ancho.

Para la respuesta de pzin lo solucionas sin padding añadiendo:
Código CSS:
Ver original
  1. nav a {/* ó con "nav li a" */
  2.   width:100%;
  3. }

o para el hml de pzin, pero con un enlace menos, corrigiendo tu css original
Código CSS:
Ver original
  1. nav ul{
  2.   list-style-type: none;
  3. }
  4. nav a {
  5.   background-color: #006699;
  6.   float: left;
  7.   height:80px;
  8.   width: 25%;/*para 4 enlaces: 100/4*/
  9.   /*margin:0px auto;/*no sirver para texto*/
  10.   text-align: center;
  11. }
  12. nav a:hover{
  13.   background-color: #0099ff;
  14.   -moz-box-shadow: 5px 4px 8px #000000;
  15.   -webkit-box-shadow: 5px 4px 8px #000000;
  16.   box-shadow: 5px 4px 8px #000000;
  17. }
  #8 (permalink)  
Antiguo 09/12/2013, 17:07
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: divs autoadaptables ?

Copiando el mismo código que puse arriba:

  #9 (permalink)  
Antiguo 09/12/2013, 17:42
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 14 años
Puntos: 0
Respuesta: divs autoadaptables ?

ahroa si... tenia yo un error en el codigo que interferia el codigo de pzin, ahi salio.
gracias a todos! :)
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #10 (permalink)  
Antiguo 10/12/2013, 08:40
 
Fecha de Ingreso: mayo-2013
Mensajes: 207
Antigüedad: 11 años
Puntos: 31
Respuesta: divs autoadaptables ?

Pues debe ser que reproduje el error, ya me estrañaba que no funcionase.

Etiquetas: ancho, background, color, divs, hover
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 18:28.