Chrome 中的渐变色带

平面设计 颜色 css 坡度 浏览器
2022-02-12 04:26:31

我一直在尝试使用线性渐变 CSS 来避免将图像用于渐变,但不幸的是,它在 Chrome 中的渲染效果很差,带有可见的条纹。

我创建了一个 codepen 示例来说明这个问题。

http://codepen.io/chrism/pen/1

这很奇怪,因为它在另一个基于 webkit 的浏览器 safari 中完美呈现。

CSS代码来自指南针图像,所以不要认为这是我的CSS的问题

我在 Chrome 问题跟踪器中找到了这张票,我认为它与这个问题有关。

http://code.google.com/p/chromium/issues/detail?id=41756

我想知道是否有人对此有任何不涉及使用图像的解决方法?

谢谢!

2个回答

您看到的差异是抖动。Safari 会抖动渐变,Chrome 不会。我不相信有一种方法可以启用或禁用两者的抖动。

抖动是一种有意应用的噪声形式,用于随机化量化误差,防止图像中出现诸如色带之类的大规模模式。

http://en.wikipedia.org/wiki/Dither

不幸的是,这意味着您可能必须使用图像。如果您决定将重复图像用于渐变,请确保留出足够的宽度或高度以使抖动正常工作。通常抖动需要大约 10-20 像素才能看起来不重复。

我注意到,如果您使用 GPU 渲染包含渐变的元素transform:translateZ(0),它会渲染得更平滑,不是完美,而是更平滑。