我有以下代码:
body{
background:red;
}
div{
width:100%;
height:100%;
background-image: -moz-linear-gradient(left, rgba(255, 255, 255, 1), rgba(0, 0, 0, 0));
background-image: -ms-linear-gradient(left, rgba(255, 255, 255, 1), rgba(0, 0, 0, 0));
background-image: -webkit-gradient(linear, 0 0, 100% 0, from(rgba(255, 255, 255, 1)), to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 1), rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(left, rgba(255, 255, 255, 1), rgba(0, 0, 0, 0));
background-image: linear-gradient(left, rgba(255, 255, 255, 1), rgba(0, 0, 0, 0));
background-repeat: repeat-x;
}
和 HTML:
<div>
test
</div>
正如您在这里看到的,它在 chrome 和 safari 之间的显示方式不同:
http://codepen.io/anon/pen/apwoGj
为什么会这样?
最佳答案
检查一下,从白色变为透明度为零的白色。对我来说,在 chrome 和 safari 上的效果似乎相同。
div{
width:100%;
height:100%;
background: #fff;
background: -webkit-linear-gradient(left, rgba(255,255,255,1), rgba(255,255,255,0));
background: -o-linear-gradient(right, rgba(255,255,255,1), rgba(255,255,255,0));
background: -moz-linear-gradient(right, rgba(255,255,255,1), rgba(255,255,255,0));
background: linear-gradient(to right, rgba(255,255,255,1) , rgba(255,255,255,0));
}
还要在顶部制作纯色背景,以防浏览器不支持渐变,它将恢复为纯色。
如果您有纯色背景,则不需要透明度,请使用纯色。
background: -webkit-linear-gradient(left, #fff, red);
background: -o-linear-gradient(right, #fff, red);
background: -moz-linear-gradient(right, #fff, red);
background: linear-gradient(to right, #fff, red);
这会做一个从白色到红色的渐变,因为背景是红色的(把红色变成你的背景颜色)
关于css - 线性背景图像在 safari 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41805267/