【问题标题】:Gradient banding with alpha channel带 Alpha 通道的渐变色带
【发布时间】:2017-08-16 06:25:23
【问题描述】:

我想创建一个从#111transparent 的渐变。但是,两者之间的颜色并不多,所以无论我做什么,我都会得到渐变色带。我尝试使用图像和几种 CSS 渐变方法,但没有任何效果。

我一直看到条带,这是个大问题,我现在不能使用渐变。 :/

只是一个简单的测试向您展示: http://codepen.io/AartdenBraber/pen/GWdapm?editors=1000

如果这只能用 CSS 来解决,那对我来说是最好的。我已经尝试过重叠几个渐变,但这只会让情况变得更糟。

【问题讨论】:

  • 条带取决于您的显示器可以看到的颜色数量。即使您在 100% sRGB IPS 显示器上做到了完美,也不是所有人都会这样看——换句话说,并不是所有的设计都能转化为代码。在过去的 7 年里,我从设计师到开发人员学到了这一点
  • 我现在做了一些修复。我添加了一个带有overflow: hidden; 的容器,并为图像添加了巨大的模糊效果。遗憾的是,它仅适用于图像。

标签: css gradient photoshop linear-gradients


【解决方案1】:

某些浏览器会在 CSS 渐变中显示条带。

您可以在 css 渐变下平铺透明的噪声 png。

http://noisepng.com可以生成图片。我使用尺寸 500,强度 90,不透明度 6。
您可能需要调整这些值以获得所需的外观。


https://jsfiddle.net/h4075sm0/

HTML

<div class="gradient">
  <div class="noise"></div>    
</div>

CSS

html, body {
  width: 100%;
  height: 100%;  
}

.noise {
  width: 100%;
  height: 100%; 
  background: url('https://i.imgur.com/UNfGD66.png');
}

.gradient {
  width: 100%;
  height: 100%;
  background: -moz-linear-gradient(top,  rgba(17,17,17,1) 0%, rgba(17,17,17,0) 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(top,  rgba(17,17,17,1) 0%,rgba(17,17,17,0) 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom,  rgba(17,17,17,1) 0%,rgba(17,17,17,0) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#111111', endColorstr='#00111111',GradientType=0 ); /* IE6-9 */
}

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    相关资源
    最近更新 更多