为什么这个CSS渐变在IE 7中显示错误的颜色?

ton*_*ega 13 css internet-explorer filter

所以我试图通过一个类在表格上放置渐变背景:

.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');
}
Run Code Online (Sandbox Code Playgroud)

IE8和FireFox看起来还不错.他们按照我的想法应用渐变:从白色到浅米色.

但是,IE7应用从黑色到深蓝色的渐变??? WTF跟那个......?

它会来自哪里?IE7无法识别十六进制颜色吗?

如果没有,它不会应用默认背景,即#fff图像文件??

Jer*_*nce 16

您是否尝试使用#ffffffff而不是#fff和#ffdedbd5而不是#dedbd5作为渐变过滤器(ie7)?

您必须指定我认为的alpha值 http://msdn.microsoft.com/en-us/library/ms532929(v=vs.85).aspx


mer*_*tor 10

IE确实识别十六进制颜色,但不是你正在使用的颜色.只有6个十六进制(#RRGGBB)或8个十六进制(#AARRGGBB;仅适用于渐变滤镜!)才有效.它也会接受命名颜色.

因此,如果你替换了#fffby white#ffffff(或者#ffffffff,在这种情况下,那个时间长于必要的时间),它将起作用.

startColorStrendColorStr的MSDN页面还注意到默认的起始颜色为蓝色,默认的结束颜色为黑色,并且:

超出十六进制范围的字符串输入将恢复为默认值.