【问题标题】:CSS gradient, transparent colors in IE?IE中的CSS渐变,透明颜色?
【发布时间】:2013-02-05 02:28:09
【问题描述】:

我可以在 IE 中使用带有渐变的透明颜色吗?

我试过了

filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=transparent, endColorstr=red);

奇怪的是,这会产生从蓝色到黑色的渐变,即使在 IE9 中也是如此。

【问题讨论】:

标签: css


【解决方案1】:

没有提及(start|end)ColorStr 属性支持的“透明”值。对于 Internet Explorer 8 及以下版本,您可以尝试以下代码:

.transparentGradient {

    /* The element needs layout */
    zoom: 1;

    filter: progid:DXImageTransform.Microsoft.gradient(
        gradientType=1, startColor=0, endColorStr=#FFFFFF
    );
    -ms-filter: progid:DXImageTransform.Microsoft.gradient(
        gradientType=1, startColor=0, endColorStr=#FFFFFF
    );
}

这里是a working example。我已经在 IE8、它的兼容模式和 IE6 中对其进行了测试。

startColor / endColor

startColorendColor 参数接受:

整数,指定或接收颜色值,范围可以从 0(透明)到 4294967295(不透明白色)。

见:http://msdn.microsoft.com/en-us/library/ms532929(v=vs.85).aspx

startColorStr / endColorStr

您也可以使用startColorStr 或/和endColorStr 接受:

字符串,指定或接收范围从 #FF000000 到 #FFFFFFFF 的值。

因此,您可以以“#RRGGBB”(如示例)或“#AARRGGBB”格式指定颜色,后者定义为:

颜色以#AARRGGBB 格式表示,其中 AA 是 alpha 十六进制值,RR为红色十六进制值,GG为绿色 十六进制值,BB 是蓝色的十六进制值。阿尔法 value 控制对象的不透明度。 alpha 值为 00 是 透明,而 FF 的值是不透明的。

默认值为#FF0000FF(不透明的蓝色),如果您传递的值超出范围,则默认为该值。见:http://msdn.microsoft.com/en-us/library/ms532930(v=vs.85).aspx


别忘了:

对象必须具有过滤器才能呈现的布局。

见:http://msdn.microsoft.com/en-us/library/ie/ms530752(v=vs.85).aspx

【讨论】:

    【解决方案2】:

    这行得通:

    #000000FF
    

    所以:

    filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=#000000FF, endColorstr=red);
    

    而且,未经测试,但我听说 0 也可以。然后是 startColor,而不是 startColorstr。

    【讨论】:

    • 如果您使用的是 LESS 等预处理器,您可以转换为 ARGB 格式:argb(rgba(0, 0, 0, 0.1))。我们用它来编写一个混合助手来支持 IE8 和 9。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多