我在跨浏览器渲染CSS3渐变时遇到了问题。当我试图创建一个从透明色到白色的渐变时,就会出现这种情况。
用于测试的文件是:http://f.cl.ly/items/0E2C062x3O161b09261i/test.html
使用的CSS为:
background-image: linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 100%);
background-image: -o-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 100%);
background-image: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 100%);
background-image: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 100%);
background-image: -ms-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 100%);
租借看起来像我在Safari 6(mac)中想要的:
Chrome渲染在褪色为白色之前会褪色为灰色(Firefox在Mac OS上也是这样渲染的):
有什么想法或建议,为什么这个奇怪的渲染可能是?
5条答案
按热度按时间wmomyfyw1#
我也遇到过这种情况,我不知道为什么会这样,但我在自己的项目中使用了以下方法:
不要给Chrome一个“透明”的值,而是给予它一个非常非常接近透明的值。
编辑:我忘了发布一个链接到我自己的version,它在Chrome 21(Windows 7)中的渲染效果和预期的一样。
aamkag612#
我粘贴在这里的CSS是错误的,我编辑了错误的文件DOH!
原始CSS不工作
修复问题的CSS
透明的问题不在于颜色,而在于阿尔法值为0的黑色,设置为阿尔法值为0的白色可以解决这个问题。
这仍然与浏览器供应商处理CSS3渐变中alpha透明度的方式不一致。
h9a6wy2h3#
使用白色以外的颜色(实际上是白色)的技巧是**
rgba
正在褪色的实际颜色**。#6faef9
),请使用a hex to rgba converter转换颜色。*y53ybaqx4#
在本机IOS上也会遇到同样的问题:
我注意到CSS的解决方案是使用白色而不是黑色,然后添加0透明度
1mrurvl15#
我最近也遇到了同样的问题,关于safari的透明度,对我有效的方法是把css替换成编译好的safari css。
这对我没用
这对我确实有效