2012-02-05 16 views
9

Considere the following code:¿Por qué no es decir ancho de la tabla con respecto niño imagen fluida

HTML:

<table> 
    <tr> 
     <td><img src="http://watduck.jpg.to" /></td> 
    </tr> 
</table> 

CSS:

table { width: 10% } 
img { max-width: 100% } 

La imagen debe ser, obviamente, una 10º del ancho de la ventana, que es exactamente lo que es en cada navegador excepto IE, donde simplemente vuelve a i ts tamaño original.

Sin embargo, consider this:

HTML:

<div><img src="http://watduck.jpg.to" /></div> 

CSS:

div { width: 10% } 
img { max-width: 100% } 

el que IE no hacerlo bien, y muestra a un décimo del ancho de la ventana.


lo tanto, aquí está la pregunta: lo que hace que este comportamiento, y lo que podría hacerse para obligar es decir, respetar el ancho de la mesa?

Probado en IE8 & IE9 (no importa IE7 y abajo).

Respuesta

24

Si especifica en la tabla css, funciona.

Parece haber una terminología contradictoria en el estándar con respecto a los diseños de tablas. En particular, table-layout: auto; dice esto:

El ancho de la columna es fijado por el contenido irrompible más amplia en las células

Puesto que el contenido imágenes es irrompible, establece el ancho de la celda con el tamaño de el contenido. El ancho máximo parece ser anulado por él.

+3

+1. El algoritmo de diseño de mesa automática es tu enemigo. – bobince

+0

Gracias, eso fue todo. ¿Alguna idea de por qué todos los otros navegadores modernos aceptan respetar 'max-width', mientras que IE parece ignorarla? –

+0

@JosephSilber - ¿Estás renderizando en modo compatibilidad? ¿Su página real tiene un tipo de documento adecuado? –

Cuestiones relacionadas