Ignacio Marcos me pasa el meme del pequeño tip para CSS y yo lo tomo casi como un reto.
Supongamos que necesitamos armar un menú horizontal basado en una lista de elementos (UL > LI).
<ul>
<li><a>foo</a>
<li><a>bar</a>
<li><a>dim</a>
</ul>
/* Saltos de linea agregados a propósito */
La primera regla sería que los elementos de la lista se muestren en linea.
li {display: inline}
Si definen un fondo para los A, notarán que se muestra un espacio entre cada uno de ellos. Esto ocurre porque el salto de linea es mostrado como un espacio en blanco —existe en los navegadores una heurística para determinar cuándo debe agregarse un espacio. Ejemplo 1
Una de las soluciones sería modificar el código HTML original borrando los saltos de linea (y de paso se ahorrarían un problema con Internet Explorer en otras circunstancias). La otra es recurrir a la propiedad word-spacing.
word-spacing tiene un valor por defecto de 0; los valores negativos disminuyen el espacio entre palabras. La solución es definir un valor negativo (entre 0.2em y 0.3em).
ul {word-spacing:-0.3em;}
li {display:inline;}
a {background:lime;}
Dos consejos más:
- Definiendo un
paddinghorizontal se mantiene el efecto (de fondo continuo) y se simula un poco de espacio entre palabras (para evitar que éstas queden superpuestas). - Si uno de los
Acontiene dos palabras pueden volver a definirword-spacing: 0para que se muestre un espacio normal entre palabras.
El ejemplo final sería:
ul {word-spacing:-0.3em;}
li {display:inline;}
a {
background:lime;
padding:0 0.3em;
word-spacing:0;
}
10 comentarios. Agregá el tuyo →
Juan
Buenísimo! Vamos a ver si puedo hacer mi aporte.
13 de febrero de 2007
Federico
Iba a desafiarte, pero no quería tampoco crear una replicación infinita.
14 de febrero de 2007
Gancé
word-spacing… Muuy bueno. Gracias.
No habrá más por casualidad?
15 de febrero de 2007
IgnacioMarcos
bárbaro fede, excelente!
PD: te faltó pasar la posta!
15 de febrero de 2007
links for 2007-02-15 en newdisco
[…] Pequeño tip para CSS: word-spacing @ 5.1.1. Tip de CSS para evitar espacios indeseados en listas no ordenadas. (tags: css help tip howto tools) […]
15 de febrero de 2007
Federico
Gancé: La verdad que tenía otro efecto mucho más sorprendente, pero quería mantener la sencillez que caracterizó a los otros y proponer algo que tuviera amplio soporte.
Ignacio: Walter, Juan, Jon y Diego saben que se los pasaría a ellos.
16 de febrero de 2007
WalteR Funk
Venía leyendo y no me encontraba, seguí leyendo y pensé que zafaba, pero en la ultima línea encontré mi nombre…
y bue, vamos con otro meme!
Haré mi aporte también.
16 de febrero de 2007
Juan
Prometo aportar! pero no tengo ni idea cuándo
22 de febrero de 2007
Fran
Yo no quiero ser aguafiestas, pero el tip no funciona en Safari.
13 de mayo de 2007
Federico
Touche.
13 de mayo de 2007