val*_*999 5 safari linear-gradients css3 rgba
我正在应用这样的基本线性渐变:
background-image: linear-gradient(to top, red, rgba(0,0,0,0));
Run Code Online (Sandbox Code Playgroud)
除了在safari中,透明度呈现为黑色/灰色,因此它的行为与其他地方一样.
这是铬(它应该是怎样):
这是野生动物园
我试着用前缀它-webkit-
,改变rgba
到rgba(0,0,0,0.001)
,但它从来就没有到固体透明.这是一个错误吗?有没有办法来解决这个问题?
Lea*_*rou 30
没有浏览器呈现transparent
为rgba(255, 255, 255, 0)
,这是完全错误的。transparent
总是rgba(0,0,0,0)
,如CSS Color 3 规范中所定义。然而,几年前,我们改变了颜色插值在渐变中的工作方式,并指定它应该在预乘 RGBA 空间中发生,正是为了解决这个问题并使插值transparent
按预期工作。看起来其他浏览器已经实施了此更改,但 Safari 还没有。如果您希望 Safari 的渐变看起来相同,则需要使用色标,这些色标利用您要插入到/从中插入的颜色的透明版本(如果这些颜色不同,有时可能需要在同一位置使用两个色标) ,在这种情况下linear-gradient(to top, red, rgba(255,0,0,0))
。或者只是等待 Safari 赶上来!:)
AJF*_*kas 23
这与浏览器呈现的方式有关transparent
.
对于大多数浏览器
transparent === rgba(255,255,255,0)
但Safari将其渲染为
transparent === rgba(0,0,0,0)
因此,如果你有一个渐变transparent
到white
(或rgba(255,255,255,1)
),对于大多数浏览器,你只是沿着渐变将alpha从0改为1.
但对于Safari,您将alpha从0更改为1 ,颜色从255
更改为0
,因此您将获得渐变灰度.
这让我疯了一会儿.
ant*_*oni 22
根据@AJFarkas 所写的内容,只需替换transparent
为rgba(255, 255, 255, 0)
,它就可以在 Safari 上正常工作!
就我而言,它是从白色到透明再到白色的线性渐变:
background-image: linear-gradient(to right, #fff 10%, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0) 75%, #fff 90%);
Run Code Online (Sandbox Code Playgroud)
我也在 Safari 中看到了这个。对我来说,它正在褪成浅红色,尽管我使用的颜色都不是接近红色的。
我使用“透明”作为值解决了这个问题。一旦我停止使用 rgba,它看起来就像预期的那样。
归档时间: |
|
查看次数: |
3811 次 |
最近记录: |