2012-02-17 11 views
5

Tengo un problema que he replicado en varios navegadores.¿De dónde viene el espacio extra en estas imágenes?

Tengo divs con imágenes cada uno en un contenedor http://jsfiddle.net/QnVYL/. El contenedor tiene un borde de 1px y un relleno de 5px. La imagen interior tiene un ancho de 100%.

Por alguna razón, sin embargo, hay más de 5 píxeles entre la parte inferior de la imagen y la parte inferior de su envoltura. ¿Ve cómo el relleno parece ser igual en todos los lados de las imágenes? Parece que hay 3 píxeles agregados de ... en alguna parte. Firebug no me deja saber de dónde.

¿Cómo puedo deshacerme del espacio? No puedo usar el posicionamiento absoluto para falsificar el relleno porque aún no estoy seguro de que siempre sabré la altura exacta de la imagen.

Ayuda es muy apreciada!

+1

¿Te ha tratar de restablecer los estilos del navegador? Tal vez algo sobre el atributo de visualización. – rekire

Respuesta

6

Es un problema conocido. Pruebe:

img { 
    display: block; 
}  
+0

AHA! Cuando la imagen está en línea, ¡el div ajusta la línea base de la línea de texto! Eric Meyer escribe al respecto aquí: http://devedge-temp.mozilla.org/viewsource/2002/img-table/ –

1

Como supuse que es el attribut pantalla:

#container { 
    display:block; 
    width: 50%; 
    margin: auto; 
    margin-top: 100px; 
} 
5

Es una línea de altura. Las imágenes se representan como elementos de bloque en línea de forma predeterminada. El line-height se asegura de que, tras el texto no se pega a la imagen como aquí:

<img...><br>foo 

line-height separates text from imagtext sticking to image

Ambas estas correcciones son útiles, dependiendo de la situación:

.imgContainer { line-height: 0; } 

img { display: block; } 
+0

Gracias por la solución alternativa. ¿Pero cuándo se ajustaría la altura de la línea 0 mejor? ¿Algunos navegadores actúan de forma extraña con imágenes bloqueadas o algo así? –

+0

En su situación particular, supongo que realmente no hace mucha diferencia. Pero supongamos que desea agregar más contenido como texto u otras imágenes, luego la altura de línea puede ser útil. Vea este ejemplo: http://jsfiddle.net/mDP85/ – user123444555621

Cuestiones relacionadas