【问题标题】:CSS gradient striping in ChromeChrome 中的 CSS 渐变条纹
【发布时间】:2013-02-14 17:20:24
【问题描述】:

我使用 Colorzilla CSS 渐变生成器创建了具有多个色标的背景。它在 Firefox 和 Safari 中运行良好,但在 Chrome 中存在令人沮丧的微妙条带/条带。这是我的代码和 jsfiddle 链接:

body {
background: rgb(0,0,0); /* Old browsers */
background: -moz-linear-gradient(left,  rgba(0,0,0,1) 0%, rgba(85,187,0,1) 15%, rgba(85,187,0,1) 25%, rgba(221,34,85,1) 45%, rgba(221,34,85,1) 55%, rgba(0,136,238,1) 75%, rgba(0,136,238,1) 85%, rgba(0,0,0,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(0,0,0,1)), color-stop(15%,rgba(85,187,0,1)), color-stop(25%,rgba(85,187,0,1)), color-stop(45%,rgba(221,34,85,1)), color-stop(55%,rgba(221,34,85,1)), color-stop(75%,rgba(0,136,238,1)), color-stop(85%,rgba(0,136,238,1)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(85,187,0,1) 15%,rgba(85,187,0,1) 25%,rgba(221,34,85,1) 45%,rgba(221,34,85,1) 55%,rgba(0,136,238,1) 75%,rgba(0,136,238,1) 85%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(85,187,0,1) 15%,rgba(85,187,0,1) 25%,rgba(221,34,85,1) 45%,rgba(221,34,85,1) 55%,rgba(0,136,238,1) 75%,rgba(0,136,238,1) 85%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(left,  rgba(0,0,0,1) 0%,rgba(85,187,0,1) 15%,rgba(85,187,0,1) 25%,rgba(221,34,85,1) 45%,rgba(221,34,85,1) 55%,rgba(0,136,238,1) 75%,rgba(0,136,238,1) 85%,rgba(0,0,0,1) 100%); /* IE10+ */
background: linear-gradient(to right,  rgba(0,0,0,1) 0%,rgba(85,187,0,1) 15%,rgba(85,187,0,1) 25%,rgba(221,34,85,1) 45%,rgba(221,34,85,1) 55%,rgba(0,136,238,1) 75%,rgba(0,136,238,1) 85%,rgba(0,0,0,1) 100%); /* W3C */
width:100%;
margin-bottom:1em;
}

http://jsfiddle.net/yL82a/ (忽略 margin-bottom 声明)

知道如何在 Chrome 中解决这个问题,使其成为一个漂亮的平滑渐变吗?我已经尝试使用 rgba 和 hex 值并得到相同的结果。

【问题讨论】:

  • 我看不出 firefox 和 chrome 有什么区别,哦,现在我明白了,晕倒的不透明条
  • 对我来说,它在 Chrome 和 Firefox 中看起来是一样的,两者都有相当明显的条带。这是我的截图,Firefox:i.imgur.com/1KwImIF.png
  • 谢谢@moettinger——好像这就是我的答案。如果您愿意,可以将您的回复作为答案留下,我会将其标记为已接受。

标签: css gradient


【解决方案1】:

我希望整个页面都有渐变背景,这个问题很烦人。 最后,我可以通过将-webkit-filter: blur(3px); 应用到<body> 来去除条纹,但随后整个内容变得模糊,所以我制作了一个单独的<div> 作为页面的背景,并对其应用了过滤器。

CSS:

html, body {
   width: 100%;
   margin: 0;
}

#page-background
{
    width: 100%;
    height: 100%;
    background: #383838; /* Old browsers */
    background: -webkit-linear-gradient(top, #383838 0%,#d6d6d6 100%); /* Chrome10+,Safari5.1+ */
    (...)
    -webkit-filter: blur(3px);
}

HTML:

<body>
    <div id="page-background"></div>
    And content goes here...

渐变是在ColorZilla site 生成的。

【讨论】:

    【解决方案2】:

    与 Chrome 如何处理抖动有关。此处讨论了问题:

    https://graphicdesign.stackexchange.com/questions/8426/gradient-banding-in-chrome

    【讨论】:

      【解决方案3】:

      尝试从这个站点生成css渐变,看看你能找到什么不同,它将帮助你调试你的代码,

      http://ie.microsoft.com/testdrive/graphics/cssgradientbackgroundmaker/default.html

      祝你好运..

      【讨论】:

      • 谢谢,但它看起来可能只是 Chrome 处理渐变的方式,因为该工具产生相同的结果。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 1970-01-01
      相关资源
      最近更新 更多