Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Ancho de las etiquetas

Estas en el tema de Ancho de las etiquetas en el foro de CSS en Foros del Web. Buenas, Tengo entendido que el ancho de una etiqueta viene determinado por el borde derecho, el izquierdo y el ancho de la propia etiqueta. Partiendo ...
  #1 (permalink)  
Antiguo 02/05/2014, 06:55
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Ancho de las etiquetas

Buenas,
Tengo entendido que el ancho de una etiqueta viene determinado por el borde derecho, el izquierdo y el ancho de la propia etiqueta.
Partiendo de esto, tengo montado un menú con 5 opciones, el width de cada opción es el 20% y padding izquierdo y derecho lo tengo a 0.
Según este ejemplo, veo lo siguiente:
ul: 1024px de ancho
li: 205px de ancho. Aquí está el problema. El 20% de 1024 es 204.8 por lo que al redondearlo la última opción salta de linia.
Se puede ver el ejemplo en: http://www.tepui.cat/foro/index.php
El código css para el menú es:
Código CSS:
Ver original
  1. nav ul li{background:gray;display:inline-block;font-size:.9em;width:20%;text-align:center;padding-top:0.5%;padding-bottom:0.5%;padding-right:0; padding-left:0;margin:0;border:0;height:25px;}

Muchas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 02/05/2014, 07:22
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: Ancho de las etiquetas

Cita:
Iniciado por mblascog Ver Mensaje
Tengo entendido que el ancho de una etiqueta viene determinado por el borde derecho, el izquierdo y el ancho de la propia etiqueta.
Por defecto si. Pero puedes cambiar el modelo de caja para que tanto el borde como el relleno formen parte del ancho y alto del elemento usando box-sizing. Yo suelo poner en mi reset un coso así:

Código CSS:
Ver original
  1. * {
  2.   box-sizing: border-box;
  3. }

Así te vas a ahorrar calcular muchas cosas.
  #3 (permalink)  
Antiguo 02/05/2014, 10:18
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Ancho de las etiquetas

Gracias pzin,
He probado box-sizing tanto en nav, como nav ul, como nav ul li y hace exactamente lo mismo.

Se te ocurre otra cosa?
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #4 (permalink)  
Antiguo 02/05/2014, 11:11
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Ancho de las etiquetas

Ya he visto porqué la 5ª opción salta a la linea siguiente.
He cambiado el fondo de las opciones, y veo que hay un par de píxeles entre opción y opción.
Tengo que averiguar porqué se crea este espacio, ya que tengo todos los paddings, margins, borders, ... a 0
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #5 (permalink)  
Antiguo 02/05/2014, 11:19
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Ancho de las etiquetas

Lo he resuelto añadiendo float:left en nav ul li
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #6 (permalink)  
Antiguo 02/05/2014, 17:31
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: Ancho de las etiquetas

Cita:
Iniciado por mblascog Ver Mensaje
Ya he visto porqué la 5ª opción salta a la linea siguiente.
He cambiado el fondo de las opciones, y veo que hay un par de píxeles entre opción y opción.
Tengo que averiguar porqué se crea este espacio, ya que tengo todos los paddings, margins, borders, ... a 0
Ese espacio de 4px se crea cuando usas la propiedad display:inline-block y dejas espacios entre los objetos html que tienen esa propiedad, la solución mas elegante y funcional en todos los navegadores es comentar los espacios en blanco que dejas entre cada item en tu html, de esta manera:

Código HTML:
 <li>...</li><!--
--><li>...</li><!--
--><li>...</li><!--
--><li>...</li> 
Existen otras soluciones como por ejemplo ponerles un margin-left negativo de -4px pero no lo recomiendan por que "cierto navegador" podría montar tus items unos encimas de otros, bueno, eso de comentar los espacios aunque no tenga sentido sí que funciona ...
  #7 (permalink)  
Antiguo 03/05/2014, 02:54
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Ancho de las etiquetas

Gracias siddartha23, muy buena la sugerencia. No había leído nada de esto.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Etiquetas: ancho, background, etiquetas
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 15:27.