2011-01-19 13 views
13

así que estoy tratando de poner un fondo degradado en una mesa, a través de una clase:¿Por qué este degradado de CSS aparece con los colores incorrectos en IE 7?

.prov-results-bkgrd { 
    background: #fff url(/_images/prov-results-table-bg.jpg) left bottom repeat-x; 

    background: -webkit-gradient(
     linear, 
     left top, 
     left bottom, 
     from(#fff), 
     to(#dedbd5) 
    ); 

    background: -moz-linear-gradient(top, #fff, #dedbd5); 

    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff', endColorstr='#dedbd5'); 
} 

IE8 y Firefox se ven bien. Aplican los degradados como pensé: del blanco al beige claro.

Sin embargo, IE7 aplica el degradado de negro a un azul oscuro ??? WTF está con eso ...?

¿De dónde vendría eso? ¿IE7 no reconoce los colores hexadecimales?

Y si no fuera así, ¿no aplicaría el fondo predeterminado, es decir, #fff y el archivo de imagen?

Respuesta

10

IE reconoce colores hexagonales, pero no del tipo que está utilizando. Solo funcionarán aquellos con 6 hexadecimales (#RRGGBB) u 8 hexadecimales (#AARRGGBB, ¡solo funciona en el filtro de degradado!). También aceptará colores con nombre.

por lo que funciona si se reemplaza la #fff por white o #ffffff (o #ffffffff, pero eso es más de lo necesario en este caso).

Las páginas de MSDN para startColorStr y endColorStr también en cuenta que el color de inicio por defecto es azul, y el color final predeterminado es negro, y:

entrada

cadena que está fuera del rango hexadecimal volverá a los valores predeterminados valor.

+0

Los colores de inicio y final predeterminados son azul y negro ???? ¿Por qué demonios sería alguna vez una buena idea? – guiniveretoo

Cuestiones relacionadas