在CSS中使用线性渐变很容易创建彩虹。
#grad1 {
height: 200px;
background: linear-gradient(45deg, red, orange, yellow, green, blue, indigo, violet, red);
}
<div id="grad1"></div>
但是看看它!这个渐变在美学上是“可怕的”。它是条纹的,在端点相遇的地方有丑陋的纯色带,它不是很好地循环,它不是平滑的,当它们应该无缝融合时,颜色明显地相互对比。
简而言之:这是一个可怕的梯度。
我想找到一个完美的渐变。一个以光滑、平滑的方式包围彩虹的渐变,一个不会留下任何明显的凸起或视觉撕裂的渐变。这个渐变是一个平滑的曲线,而不是一个尖锐的混乱。
这个梯度存在吗?
6条答案
按热度按时间6rvt4ljy1#
你需要选择颜色,将很好地融合在一起,更多的颜色步骤。
我用CSS Gradient Generator做的:https://cssgradient.io/
yfwxisqw2#
你可以通过叠加单独的红色、绿色和蓝色来得到看起来更好的东西,试图匹配人类的色锥敏感度。
这里有一个例子,但它可以通过调整线性渐变中的一些%数字,并通过使用更平滑的渐变形状(目前是三角形,顶部被截断)来改进。
9jyewag03#
CSS有
hsl()
function(代表Hue,Saturation,Lightness)。要创建渐变,只需将360色调度除以12主色(= 30度步长)。
在色调上应用30度的增量:
dvtswwa34#
我不是一个CSS程序员,但只是在MS Word/Excel/PowerPoint中使用线性渐变填充,我喜欢用以下4种RGB颜色创建我的彩虹:(255,0,0);(二十五万五千二百五十五点零万);(0 192 255);(192,0,255).对我来说这看起来很不错,而且几乎不费吹灰之力!{See Images〉〉}
上面彩虹的另一个变体是“海洋上的日落”。(它将成为网页的一个很好的背景)。从彩虹开始,用下面的深蓝色替换最后一个(紫色)颜色:(60,70,200)。然后将黄色滑块移到浅蓝色滑块上(我的滑块在60%和61%)。就是这样!{查看图片〉〉}
我在CSS中做到了!:-)〉〉
ldioqlga5#
在不久的将来,由于新的颜色插值,你可以像下面这样轻松地做到这一点。我们告诉浏览器在色调颜色空间中采取红色和红色之间的较长路线。
nfs0ujit6#
只是一个想法:你可以只指定红、黄、蓝三种颜色,而不是明确地指定彩虹中的所有颜色,然后这些颜色就可以自然地混合在一起。
另一个想法:如果你不喜欢这些特定的黄色、红色和蓝色,你可以尝试使用RGB值的自定义颜色。基本思想是相同的,尽管只使用彩虹中的三原色。
编辑:你可以在最后加上红色,把紫色加回去。