Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Div ancho automático

Estas en el tema de Div ancho automático en el foro de CSS en Foros del Web. Hola a todos! Tengo el siguiente problema: Estoy haciendo un menu, cinco elementos con link mas uno vacio para rellenar. Los primeros cinco elementos expanden ...
  #1 (permalink)  
Antiguo 10/01/2014, 17:17
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Div ancho automático

Hola a todos! Tengo el siguiente problema: Estoy haciendo un menu, cinco elementos con link mas uno vacio para rellenar. Los primeros cinco elementos expanden su ancho segun el tamaño del texto pero el ultimo hace lo mismo y yo necesito que rellene todo el espacio que queda. Agradezco de antemano la ayuda.
  #2 (permalink)  
Antiguo 10/01/2014, 18:28
Avatar de g3kdigital  
Fecha de Ingreso: noviembre-2013
Ubicación: En mi apartamento en bogotá
Mensajes: 208
Antigüedad: 10 años, 5 meses
Puntos: 39
Respuesta: Div ancho automatico

¿Que estructura o maquetación html estas usando?

Lo primero que se me ocurre, es que no estas usando listas y solo links, pero es muy dificil de saber sin ver el código. Puedes ponerlo?
  #3 (permalink)  
Antiguo 10/01/2014, 18:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Div ancho automatico

Hola g3kdigital. Tengo esto:

Código HTML:
<div id="menu">
  <div id="inicio" class="menu">inicio</div>
  <div id="nosotros" class="menu">"nosotros"</div>
  <div id="servicios" class="menu">"servicios"</div>
  <div id="galeria" class="menu">"galeria"</div>
  <div id="contacto_menu" class="menu">"contacto_menu"</div>
  <div class="menu" id="blanco">Colocar aquí el contenido para  id "blanco"</div>
</div> 
Código:
.menu {
	float: left;
	padding-right: 30px;
	padding-left: 30px;
	background-image: url(imagenes/png-bg.jpg);
	height: 68px;
	border-top-width: 1px;
	border-right-width: 1px;
	border-bottom-width: 1px;
	border-left-width: 1px;
	border-top-style: solid;
	border-right-style: solid;
	border-bottom-style: solid;
	border-left-style: solid;
	border-top-color: #292821;
	border-right-color: #080808;
	border-bottom-color: #080808;
	border-left-color: #292821;
}
  #4 (permalink)  
Antiguo 11/01/2014, 00:22
Avatar de g3kdigital  
Fecha de Ingreso: noviembre-2013
Ubicación: En mi apartamento en bogotá
Mensajes: 208
Antigüedad: 10 años, 5 meses
Puntos: 39
Información Respuesta: Div ancho automatico

Tu estructura si bien no es una conocida y por cuestiones de semantica o accesibilidad no la recomiendo (sobre todo por el exceso de "div" innecesarios) Esto no quiere decir que sea imposible de usar y por ejemplo para lograr tu objetivo te recomiendo:

Primero: asignale a tu contenedor con el id "menu" un cambio en su modelo de caja para transformarlo en una tabla usando "display: table;" y además un ancho del 100%.

Código CSS:
Ver original
  1. #menu
  2. {
  3.   display: table;
  4.   width: 100%;
  5. }

Segundo: a todos los div anidados asignales un "display: table-cell;" de esta manera trataran automáticamente unos tamaños relativos con el fin de llenar toda la estrucutura. Puedes usar el selector "#menu>div" o la clase que tu usas ".menu".

Código CSS:
Ver original
  1. .menu
  2. {
  3.   display: table-cell;
  4. }

Tercero: Habiendo hecho esto, solo queda decirle al ultimo div o celda, que deberá ocupar siempre un ancho que ocupe el resto del contenido, por lo que le podemos especificar "width: 100%;" de esta forma conseguirás tu objetivo.

Código HTML:
Ver original
  1. #blanco
  2. {
  3.    width: 100%;
  4. }

Puse un ejemplo de como se vería en este http://codepen.io/g3kdigital/pen/wDocC

Por cierto, francamente la estructura del html es un poco extraña para un menu.

Actualmente no conozco una forma de que solo con html o css se calcule un espacio cuando no hay ninguno de los siguientes 3 factores bien definidos: Estructura, Modelo de caja o Medidas (ya sean en pixeles, porcentajes, em, etc).

Por lo que te invito a estudiar un poco estructuras html (en google hay montones de ejemplos) mira este por ejemplo http://codepen.io/g3kdigital/pen/oKDlf

Última edición por g3kdigital; 11/01/2014 a las 00:33
  #5 (permalink)  
Antiguo 11/01/2014, 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: Div ancho automatico

Como te han dicho no es esa la estructura ideal para un menú, ya que suele ser más indicado usar una lista desordenada.

Pero bueno, lo pongas así o bien, podrías hacer algo así para que ese último elemento ocupe el espacio restante:

Código CSS:
Ver original
  1. div#blanco {
  2.   float: none;
  3.   overflow: hidden;
  4. }

A ver si este verano podemos empezar a recomendar el uso de FlexBox. <3
  #6 (permalink)  
Antiguo 11/01/2014, 08:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 164
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Div ancho automatico

Gracias g3kdigital y pzin. Lo he resuelto con su ayuda!

Etiquetas: ancho, automatico, 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 16:26.