Alpha通道的渐变条带

时间:2017-03-23 15:28:35

标签: css gradient photoshop linear-gradients

我想创建一个从#111transparent的渐变。然而,它们之间的颜色并不多,所以无论我做什么,我都会得到渐变条纹。我尝试使用图像和几个CSS渐变方法,没有任何作用。

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

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

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

1 个答案:

答案 0 :(得分: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 */
}