Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS的浏览器处理“;透明”;渐变_Css_Colors_Transparency_Gradient - Fatal编程技术网

CSS的浏览器处理“;透明”;渐变

CSS的浏览器处理“;透明”;渐变,css,colors,transparency,gradient,Css,Colors,Transparency,Gradient,虽然CSS颜色rgba(255255255,0)和rgba(0,0,0,0)明显相同,即透明,但当被视为普通颜色时,它们会影响渐变中的中间颜色: linear-gradient(left center, rgba(0,0,0,0), rgba(255,255,255,1)) 这在两端之间产生灰色半透明色调 现在我的问题是: 浏览器是否自动选择透明的“正确”颜色,还是固定颜色(最有可能是“黑色透明”或“白色透明”) 浏览器之间有什么不同吗 尽管透明的与rgba(0,0,0,0,0)的意思相同,但

虽然CSS颜色
rgba(255255255,0)
rgba(0,0,0,0)
明显相同,即
透明
,但当被视为普通颜色时,它们会影响渐变中的中间颜色:

linear-gradient(left center, rgba(0,0,0,0), rgba(255,255,255,1))
这在两端之间产生灰色半透明色调

现在我的问题是:

  • 浏览器是否自动选择透明的“正确”颜色,还是固定颜色(最有可能是“黑色透明”或“白色透明”)

  • 浏览器之间有什么不同吗

  • 尽管透明的与rgba(0,0,0,0,0)的意思相同,但颜色在CSS渐变中的表现略有不同。应该在预乘RGBA颜色空间中插值颜色停止点。这意味着浏览器应该在颜色停止之间的过渡期间保留RGB颜色,并且灰色半透明色调不应该存在

  • 截至2012年10月底,只有IE10和Opera正确执行此插值,这样就不会出现灰色部分,并且可以得到纯白色0%-100%的alpha渐变。其他浏览器显示灰色部分,这是不正确的


  • 谢谢,特别是这次考试!我不喜欢这个规范,但是css应该更智能…@BoltClock:看看CSS3图像值规范,插值应该在预乘颜色空间中完成。所以除了Opera,浏览器都有问题。@Lea Verou:我终于更新了我的答案。看起来只有IE10是另外一款能够做到这一点的浏览器。Firefox16仍然存在这种缺陷,即使使用了不固定的渐变函数。我没有在任何晚上测试过。