如何实现跨浏览器不透明度渐变(非颜色渐变)

时间:2010-04-16 05:47:43

标签: javascript html css cross-browser opacity

如何实现跨浏览器不透明度渐变(不是颜色渐变)? 请参阅以下代码:

<div style="background-color:Red;display:block;height:500px;width:500px;filter:alpha(Opacity=100, FinishOpacity=0, Style=1, StartX=0, StartY=0, FinishX=0, FinishY=500)"></div>

它在IE中运行良好,但在其他浏览器中却没有,例如firefox,safari ..等等。 什么是firefox的等效语法? 请不要建议我使用渐变图像。

2 个答案:

答案 0 :(得分:9)

最近的Firefox版本有-moz-linear-gradient,WebKit浏览器有-webkit-gradient。应该可以使用rgba颜色来实现这两者的透明度。

https://developer.mozilla.org/en/CSS/-moz-linear-gradient
https://developer.apple.com/library/content/documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Gradients/Gradient.html

唯一真正的100%跨浏览器兼容解决方案是图像。

答案 1 :(得分:6)

谢谢@deceze,

我正在为具有相同要求的其他人编写示例css

top:0px;
    opacity: 0.6;       
    width: 1944px; 
    height: 896px; 
    position: absolute; 
    z-index: 500;
background-color:#dcdcdc;
        /* For WebKit (Safari, Google Chrome etc) */
        background: -webkit-gradient(linear, left top, left bottom, from(#dcdcdc), to(rgba(215,212,207,0)));
        /* For Mozilla/Gecko (Firefox etc) */
        background: -moz-linear-gradient(top, #dcdcdc, rgba(215,212,207,0));
        /* For Internet Explorer 5.5 - 7 */
        filter:alpha(Opacity=70, FinishOpacity=0, Style=1, StartX=1242, StartY=0, FinishX=1242, FinishY=696);
        /* For Internet Explorer 8 */
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70, FinishOpacity=0, Style=1, StartX=1242, StartY=0, FinishX=1242, FinishY=696)";