IE渐变,IE中的透明色?

use*_*003 3 css

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

我试过了

filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=transparent, endColorstr=red);
Run Code Online (Sandbox Code Playgroud)

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

Ole*_*leg 9

没有提到(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
    );
}
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子.我已经在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是蓝色十六进制值.alpha值控制对象的不透明度.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


use*_*003 6

这有效:

#000000FF
Run Code Online (Sandbox Code Playgroud)

所以:

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

而且,没有经过测试,但我听说0也有效.然后是startColor,而不是startColorstr.

  • 如果您使用的是LESS之类的预处理器,则可以转换为ARGB格式:argb(rgba(0,0,0,1.1)).我们用这个来编写一个混合帮助器来支持IE8和9. (2认同)