Foros del Web » Creando para Internet » CSS »

Auto-ajustar

Estas en el tema de Auto-ajustar en el foro de CSS en Foros del Web. Estoy trabajando con un menu desplegable y resulta que quiero que se auto-ajuste dependiendo de la cantidad de items que tenga. pero cuando le doy ...
  #1 (permalink)  
Antiguo 22/02/2013, 09:12
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Auto-ajustar

Estoy trabajando con un menu desplegable y resulta que quiero que se auto-ajuste dependiendo de la cantidad de items que tenga. pero cuando le doy la propiedad "auto" al width, me lo hace de todo el ancho de la pagina....

aca esta el estilo

Código:
.mi-menu  {
    border-radius: 5px;
    list-style-type: none;
    margin: 0 auto; 
    padding: 0;
    /* la altura y su ancho */
    height: 40px; 
    width: auto;
    /* el color de fondo */
    background: #555;
    background: -moz-linear-gradient(#555,#222);
    background: -webkit-linear-gradient(#555,#222);
    background: -o-linear-gradient(#555,#222);
    background: -ms-linear-gradient(#555,#222);
    background: linear-gradient(#555,#222);
  }
  #2 (permalink)  
Antiguo 22/02/2013, 09:19
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Habría que ver todo el menú para ver cómo está hecho el contenido.

Si es un elemento de bloque .mi-menu, es normal que haga el ancho al 100% de su elemento contenedor, ya que es el valor por defecto.
  #3 (permalink)  
Antiguo 22/02/2013, 09:35
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

este seria el html del menu.

Código HTML:
Ver original
  1. <ul class="mi-menu">
  2.   <li><a href="URL_enlace_1"> Pagina principal </a></li>
  3.   <li>
  4.     <a href="#">Meditaciones</a>
  5.     <ul>
  6.       <li><a href="URL_enlace_2.1">Submenu 2.1 </a></li>
  7.       <li><a href="URL_enlace_2.2">Submenu 2.2</a></li>
  8.       <li><a href="URL_enlace_2.3">Submenu 2.3</a></li>
  9.     </ul>
  10.   </li>
  11.   <li>
  12.      <a href="URL_enlace_3">Mi ciudad</a>
  13.          <ul>
  14.              <li><a href="URL_enlace_2.1">Submenu 2.1 </a></li>
  15.              <li><a href="URL_enlace_2.2">Submenu 2.2</a></li>
  16.              <li><a href="URL_enlace_2.3">Submenu 2.3</a>
  17.                 <ul>
  18.                    <li><a href="#">Submenu 2.3.1</a></li>
  19.                    <li><a href="#">Submenu 2.3.2</a></li>
  20.                 </ul>
  21.              </li>
  22.          </ul>
  23.   </li>
  24.   <li>
  25.      <a href="URL_enlace_3">Enlaces</a>
  26.          <ul>
  27.              <li><a href="URL_enlace_2.1">Submenu 2.1 </a></li>
  28.              <li><a href="URL_enlace_2.2">Submenu 2.2</a></li>
  29.              <li><a href="URL_enlace_2.3">Submenu 2.3</a></li>
  30.          </ul>
  31.   </li>
  32. </ul>
  #4 (permalink)  
Antiguo 22/02/2013, 10:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Uhmm... Pero falta el CSS, ¿no?
  #5 (permalink)  
Antiguo 25/02/2013, 04:38
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

Cita:
Iniciado por Bonez Ver Mensaje
Uhmm... Pero falta el CSS, ¿no?
El css esta arriba....
  #6 (permalink)  
Antiguo 25/02/2013, 04:54
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Cita:
Iniciado por leoass Ver Mensaje
El css esta arriba....
El de ul, pero falta saber lo demás para ver la manera de autoajustar el contenido.
  #7 (permalink)  
Antiguo 25/02/2013, 05:04
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

bueno. aca dejo todo el css. No es mucho, dado que es un borrador que estoy haciendo.

Código HTML:
[CODE]body
{
   background-color:#585858;
   font-family: Georgia, "Times New Roman", Times, serif;
}
.encabezado
{
	background: url(imagenes/logo.png);
	
}

.tabla
{
   clear: none;
   overflow: auto;
   margin:11em;
   border:1px solid #585858; 
   font-size:12pt;
   
}
 
.fila
{
   clear: both;
}
 
.columna_iz
{
   float: left;
   padding: 5px;
   width:200px;
   border-style: solid;
   height: auto;
   border-right-width: 0px;
   border-left-width: 0px;
   border-top-width: 0px;
   border-bottom-width: 1px;
   background:#2E64FE;
   padding:2px 6px 4px; 
   border:1px solid #FFFFFF;
   font-size:11pt;
   color:white;
}
.columna_der
{
   float: right;
   padding: 5px;
   width:200px;
   border-style: solid;
   height: auto;
   border-right-width: 0px;
   border-left-width: 0px;
   border-top-width: 0px;
   border-bottom-width: 1px;
   background:#2E64FE; 
   padding:2px 6px 4px; 
   border:1px solid #FFFFFF; 
   font-size:11pt;
   text-align: right;
   color:white;
}
/*menu*/
 .mi-menu  {
    border-radius: 5px;
    list-style-type: none;
    margin: 0 auto; /* si queremos centrarlo */
    padding: 0;
    /* la altura y su ancho dependerán de los textos */
    height: 40px; 
    width: 500px;
    /* el color de fondo */
    background: #555;
    background: -moz-linear-gradient(#555,#222);
    background: -webkit-linear-gradient(#555,#222);
    background: -o-linear-gradient(#555,#222);
    background: -ms-linear-gradient(#555,#222);
    background: linear-gradient(#555,#222);
  }

  /* si es necesario, evitamos que Blogger de problemas con los saltos de línea cuando escribimos el HTML */
  .mi-menu  br { display:none; }
  /* cada item del menu */
  .mi-menu  li {
    display: block;
    float: left; /* la lista se ve horizontal */
    height: 40px;
    list-style: none;
    margin: 0;
    padding: 0;
    position: relative;
  }
  /*fin del menu*/
  .mi-menu li a {
    border-left: 1px solid #000;
    border-right: 1px solid #666;
    color: #EEE;
    display: block;
    font-family: Tahoma;
    font-size: 13px;
    font-weight: bold;
    line-height: 28px;
    padding: 0 14px;
    margin: 6px 0;
    text-decoration: none;
    /* animamos el cambio de color de los textos */
    -webkit-transition: color .2s ease-in-out;
    -moz-transition: color .2s ease-in-out;
    -o-transition: color .2s ease-in-out;
    -ms-transition: color .2s ease-in-out;
    transition: color .2s ease-in-out;
  }
  /* eliminamos los bordes del primer y el último */
  .mi-menu li:first-child a { border-left: none; }
  .mi-menu li:last-child a{ border-right: none; }
  /* efecto hover cambia el color */
  .mi-menu li:hover > a { color: Crimson; }

  /* los submenús */
  .mi-menu ul {
    border-radius: 0 0 5px 5px;
    left: 0;
    margin: 0;
    opacity: 0; /* no son visibles */
    position: absolute;
	padding: 0;
    top: 40px; /* se ubican debajo del enlace principal */
    /* el color de fondo */
    background: #222;
    background: -moz-linear-gradient(#222,#555);
    background: -webkit-linear-gradient(#22,#555);
    background: -o-linear-gradient(#222,#555);
    background: -ms-linear-gradient(#222,#555);
    background: linear-gradient(#222,#555);
    /* animamos su visibildiad */
    -moz-transition: opacity .25s ease .1s;
    -webkit-transition: opacity .25s ease .1s;
    -o-transition: opacity .25s ease .1s;
    -ms-transition: opacity .25s ease .1s;
    transition: opacity .25s ease .1s;
  }
  /* son visibes al poner el cursor encima */
  .mi-menu li:hover > ul { opacity: 1; }

   /* cada uno de los items de los submenús */
  .mi-menu ul li {
    height: 0; /* no son visibles */
    overflow: hidden;
    padding: 0;
	margin:0;
    /* animamos su visibildiad */
    -moz-transition: height .25s ease .1s;
    -webkit-transition: height .25s ease .1s;
    -o-transition: height .25s ease .1s;
    -ms-transition: height .25s ease .1s;
    transition: height .25s ease .1s;
  }
  .mi-menu li:hover > ul li {
    height: 36px; /* los mostramos */
    overflow: visible;
    padding: 0;
  }
  .mi-menu ul li a {
    border: none;
    border-bottom: 1px solid #111;
    margin: 0;
    /* el ancho dependerá de los textos a utilizar */
    position:relative;
    width: 100px;
  }
  /*Submenu del submenu. Esto hace que este a la derecha y no abajo*/
  .mi-menu ul ul {
    position: absolute; 
	left: 100%; 
	top:0;  
  }
  /* el último n otiene un borde */
  .mi-menu ul li:last-child a { border: none; }
.contenedor {
/* propiedades obligatorias */
overflow: hidden;
position: relative;
/* propiedades optativas */
border-radius: 0 0 0 20px;
background-color: #202931;
border-bottom: 5px solid #404951;
border-left: 5px solid #404951;
color: #FFF;
margin: 0 auto;
padding: 30px;
width: 470px;
}
#corner {
/* lo dimensionamos y lo posicionamos de manera absoluta */
display: block;
height: 100px;
position: absolute;
width: 100px;
/* lo rotamos */
-moz-transform: rotate(45deg);
-o-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
filter:  progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476);
/* la posición del triangulo*/
top:-50px;
right:-50px;
/* otras propeidades optativas */
background-color: #A00;
box-shadow: 0px 0px 50px #000 inset;
}
#corner-ad {right: -30px; top: -70px;}
/* menu desplegable vertical */
.izquierda {
  top:2em;
  left:1em;
  
}
ul.sidenav {
  /* el rectángulo contenedor */
  list-style: none;
  float: left;
  position:absolute;
  padding: 0;
  width: 250px;
  /* propiedades optativas */
  background-color: #CD853F;
  border: 1px solid #300;
  outline: 1px solid #FFF;
}
ul.sidenav li a {
  /* el enlace de cada item */
  display: block;
  text-decoration: none;
  /* propiedades optativas */
  background: transparent url(carpeta2.png) no-repeat 5px 7px;
  border-bottom: 1px solid #AD651F;
  border-top: 1px solid #300;
  color: #FFF;
  font-size: 18px;
  padding: 15px 10px 10px 45px;
  width: 195px;
}
ul.sidenav li a:hover {
  /* propiedades optativas */
  background: #CD853F url(libro.png) no-repeat 5px 7px;
  border-top:1px solid #300;
}
ul.sidenav li span {
  /* el contenido permanece oculto por defecto */
  display:  none;
}
ul.sidenav li a:hover span {
  /* el contenido se muestra al pasar el cursor encima */
  display: block;
  /* propiedades optativas */
  font-size: 12px;
  padding: 10px 0;
  margin: 0 0 0 -30px;
}[/CODE]
  #8 (permalink)  
Antiguo 25/02/2013, 05:11
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Si pones ul como un elemento de bloque en linea se ajustará:

Código CSS:
Ver original
  1. .ul {
  2.   display: inline-block;
  3. }
  #9 (permalink)  
Antiguo 25/02/2013, 05:28
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

bueno. el problema ya esta solucionado. lo que si me pasa ahora, es que se me queda a la izquierda el menu. Antes, estaba en el centro de la pagina.... y trate de acomodarlo pero no puedo...
  #10 (permalink)  
Antiguo 25/02/2013, 05:40
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Cita:
Iniciado por leoass Ver Mensaje
o que si me pasa ahora, es que se me queda a la izquierda el menu. Antes, estaba en el centro de la pagina.... y trate de acomodarlo pero no puedo...
Ya que tu ul es ahora un elemento en línea, y que esté seguramente dentro de algún otro elemento, a este le aplicas un alineamiento de texto normal.

Por ejemplo, si está en un nav, haces algo así:
Código CSS:
Ver original
  1. nav {
  2.   text-align: center;
  3. }
  #11 (permalink)  
Antiguo 25/02/2013, 06:46
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

pasa que lo que yo quiero alinear no es el texto. Quiero alinear el menu en si mismo...
  #12 (permalink)  
Antiguo 25/02/2013, 06:51
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Cita:
Iniciado por leoass Ver Mensaje
pasa que lo que yo quiero alinear no es el texto. Quiero alinear el menu en si mismo...
Los elementos en línea se pueden alinear con text-align. Como tu menú es ahora un elemento de bloque en línea —inline-block— puedes alinearlo como si fuera texto. Que es lo que dije arriba.
  #13 (permalink)  
Antiguo 25/02/2013, 07:33
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

ahi le busque la vuelta con lo de text-align. pero no funciona... probe de distintas formas... y nada... tmb vale aclarar que no soy un experto en css.
  #14 (permalink)  
Antiguo 25/02/2013, 07:36
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

¿A qué le estás aplicando el alineamiento? Recuerda que no es a .mi-menu donde lo tienes que aplicar, sino al elemento que contenga a ese.
  #15 (permalink)  
Antiguo 25/02/2013, 08:21
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Auto-ajustar

a ver... creo que no estamos pensando sobre la misma cosa... te paso un screen y va a ser mas facil.

  #16 (permalink)  
Antiguo 25/02/2013, 11:03
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Auto-ajustar

Al elemento que contiene UL, es decir, al elemento padre de UL, le aplicas el alineamiento de texto. ¿Haz probado a hacerlo antes de suponer nada?

Etiquetas: altura, ancho
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 20:30.