172 votos

Omitir espacio en blanco en HTML

¿Hay algo en HTML/CSS que indica al navegador para omitir espacio en blanco completamente?

Muchas veces cuando quieres poner, digamos, dos imágenes al lado del otro - desesperadamente intenta mantener el HTML legible, pero el navegador pone un espacio entre ellos.

Así que en vez de algo como esto:

<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />
<img src="images/minithing.jpg" alt="my mini thing" />

terminas con esto

<img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" /><img src="images/minithing.jpg" alt="my mini thing" />

Que es tan horrible!

149voto

Boldewyn Puntos 29961

¡ Muy fácil puedes lograr eso con una sola línea de CSS:

#parent_of_imgs { white-space-collapse: discard; }

¿Desventaja, preguntas? Ningún navegador ya ha implementado esta característica muy útil (piénsese en línea bloques en general). :-(

Lo que he hecho de vez en cuando, aunque es feo como la noche es oscura, es utilizar comentarios:

<p><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
  --><img src="." alt="" /><!--
--></p>

80voto

Umesh Puntos 521

puede configurar el font-size del envase a 0 y el white-space desaparece!

41voto

Guffa Puntos 308133

Los navegadores no ignora los espacios en blanco en la mayoría de los casos cuando junto a un elemento de bloque.

El problema con las imágenes (en este caso) es que son elementos en línea, por lo que mientras se escriben en líneas independientes, son en realidad elementos en la misma línea, con un espacio entre ellos (como el salto de línea cuenta como un espacio). Sería incorrecto por el navegador para eliminar los espacios entre las imágenes, la escritura de las etiquetas de imagen con saltos de línea entre ellos debe ser manejada de la misma manera como la escritura de la imagen de etiquetas en la misma línea, con espacios entre ellos.

Puedes usar CSS para hacer que las imágenes de los elementos de bloque y flotar al lado del otro, que resuelve un montón de problemas con espaciado, tanto en el espacio entre las imágenes y el espacio en la línea de texto debajo de las imágenes.

32voto

Jon Grant Puntos 7560

Desafortunadamente, saltos de línea se cuentan como caracteres de espacio.

La mejor solución que he venido para arriba con es utilizar el espacio en blanco dentro de las etiquetas, en vez de afuera:

  <img src="images/minithing.jpg" alt="my mini thing" 
/><img src="images/minithing.jpg" alt="my mini thing"
/><img src="images/minithing.jpg" alt="my mini thing"
/><img src="images/minithing.jpg" alt="my mini thing" />

Tampoco, no es ideal, lo sé. Pero al menos no es algo bizarro hack CSS que se basa en el tamaño de un carácter de espacio se procesa o recurrir a la posición relativa, o JavaScript :)

13voto

Ozzy Puntos 4358

¿Qué era tan difícil sobre esta solución?

CSS

.no-whitespace {
    line-height: 0;
    font-size: 0;
}

HTML

<span class="no-whitespace">

    <a href=# title='image 1'>
       <img src='/img/img1.jpg' alt='img1'/>
    </a>

    <a href=# title='image 2'>
       <img src='/img/img2.jpg' alt='img2'/>
    </a>

    <a href=# title='image 3'>
       <img src='/img/img3.jpg' alt='img3'/>
    </a>

</span>

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X