Safari 6渐变色混合/插值bug

时间:2012-12-03 20:49:54

标签: css graphics safari webkit gradient

图片应该解释一切。左侧是Safari 6,右侧是Chrome。不仅透明红色渐变的下半部分完全错误(这可能是过热的预乘alpha的情况),上半部分也更暗,看起来像是伽马校正问题。

此问题出现在Mountain Lion和iOS6 Mobile Safari上的Safari 6上,但不会出现在Lion上的Safari 6上。

http://jsfiddle.net/ZUTYm/4

是否有人找到了获得预期结果的解决方案?我需要我的渐变来涉及alpha,因为我试图淡入淡出文本。

由于我无法完成编辑,直到我在这里输入真实代码才是渐变定义:background-image: -webkit-linear-gradient(top, red, rgba(255,128,128,0), white);

enter image description here

1 个答案:

答案 0 :(得分:4)

我能够在Mac 10.8.1 Safari 6.0(8536.25)和iOS Safari 6.0.1上重现该问题。我认为应用-webkit-mask-image而不是透明的颜色停止会避免这个问题:

.grad-bg {
    background-image: 
        -webkit-linear-gradient(top, #ff0000, #fff);
    height: 100%;
}

.masked {
    -webkit-mask-image:
        -webkit-linear-gradient(top, white, transparent, white);
}

jsFiddle

在图像中,顶部显示在白色背景上,底部形状显示在相同颜色的不透明渐变背景上。

Top shows over a white background, bottom shape shows over an opaque gradient background of the same colors.

(许多编辑。)