2011-01-19 14 views
13

Così sto cercando di mettere uno sfondo sfumato su un tavolo, con una classe:Perché questo gradiente CSS viene visualizzato con colori errati in 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 e Firefox guardare OK. Applicano i gradienti come pensavo: dal bianco al beige chiaro.

Tuttavia, IE7 applica il gradiente da nero a a un blu scuro ??? WTF è all'altezza di ...?

Da dove viene? IE7 non riconosce i colori esadecimali?

E se così non fosse, non applicherebbe lo sfondo predefinito, ovvero #fff e il file immagine ??

risposta

10

IE fa riconoscere i colori esadecimali, ma non il tipo che si sta utilizzando. Funzioneranno solo quelli con 6 esadecimali (#RRGGBB) o 8 esadecimali (#AARRGGBB; funziona solo con il filtro sfumatura!). Accetterà anche i colori con nome.

in modo da funzionare se si sostituisce il #fff da white o #ffffff (o #ffffffff, ma questo è più del necessario in questo caso).

Le pagine di MSDN per startColorStr e endColorStr anche notare che il colore iniziale di default è blu, e il colore finale predefinito è nero, e:

ingresso

String che non rientra nell'intervallo esadecimale tornerà al valore predefinito valore.

+0

I colori iniziali e finali predefiniti sono blu e nero ???? Perché mai sarebbe stata una buona idea? – guiniveretoo

Problemi correlati