线性背景图像在safari上无法正常工作

时间:2017-01-23 11:26:51

标签: css

我有以下代码:

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

为什么会这样?

3 个答案:

答案 0 :(得分:2)

检查出来,从白色变为白色,透明度为零。对我来说似乎在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);

这将做一个从白色到红色的渐变,因为背景为红色(将红色变为任何背景颜色)

答案 1 :(得分:0)

正如其他人所说,PC上的safari已经死了,不应该使用,因为除了它是一个非常古老而死的浏览器并支持小css3之外,它也将是一个安全问题,因为它没有被维护。用户应将其从系统中删除,因为这些天它没有可行的用途。

尽管如此,你的代码存在的问题是PC上的safari 5.1不能理解新的线性渐变语法(因为它不在那时),你需要使用前缀版本。

background-image:-webkit-linear-gradient(bottom,#FFFFFF 0%,#DDDDDD 100%); 上面的测试和在safari PC上工作(我安装了一台我不再使用的旧机器。)

答案 2 :(得分:0)

/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#1e5799+0,2989d8+50,207cca+51,7db9e8+100;Blue+Gloss+Default */
background: #1e5799; /* Old browsers */
background: -moz-linear-gradient(left,  #1e5799 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(left,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to right,  #1e5799 0%,#2989d8 50%,#207cca 51%,#7db9e8 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=1 ); /* IE6-9 */

也许请使用Colorzilla gradient generator.中的此订单和说明。请尝试这样做,因为您可能在我们看不到的地方找到了某个类型,或者您的订单不是最好的。