我正在建立一个简单的网站,当我点击一个按钮时,它会给出一个随机报价,然后背景颜色会改变。问题是有时背景颜色太深,字体是黑色的,因此人们无法阅读报价。
我的问题:
有什么方法可以只使用 明亮的颜色 或 柔和的颜色 来创建随机颜色代码吗?
我得到这段代码来生成随机颜色。我试图编辑只得到 A
到 F
字符串但没有成功:
'#'+((1<<24)*(Math.random()+1)|0).toString(16).substr(1)
非常感谢你提前。
原文由 Zzeks 发布,翻译遵循 CC BY-SA 4.0 许可协议
HSL 颜色
使用 HSL Colors 颜色可能是最简单的。 HSL 颜色值在 CSS 中指定为
where
hue
is in range 0-360 (without a unit marker when using degrees), and bothsaturation
andlightness
are percentages with a trailing%
标志。笔记
“明亮”颜色是指从红色开始,然后将纯红色混合到绿色,将纯绿色混合到蓝色,最后将纯蓝色再混合回红色而形成的 RGB 色轮的颜色。
在 HSL 颜色空间中,明亮的颜色由基于它们在色轮上的位置的色调表示,饱和度为
100%
,亮度值为50%
:色调
◀ 色调
0
▶360
饱和度:
100%
亮度:
50%
颜色与白色混合 - 随着亮度增加到
50%
之上,颜色变得更加“柔和”。无论色调和饱和度的值是多少,亮度值100%
都会产生白色。随着饱和度 降低, 颜色与灰色混合,并根据饱和度降低的程度变得更加褪色。饱和度值
0%
仅根据亮度创建灰度色调。随着亮度降低到
50%
以下,颜色与黑色混合。无论色调和饱和度值是多少,亮度值0%
都会产生黑色。警告
人眼对蓝色最不敏感。与其他颜色相比,蓝色背景上的黑色文本(或黑色上的蓝色)更难阅读。如果这成为随机颜色选择的问题,示例 2 显示了一种补偿方法。
示例 1:一些随机柔和的颜色, 饱和度 在
25-95%
范围内, 亮度 在85-95%
范围内:示例 2:此示例演示如何针对眼睛对蓝色不敏感的情况调整颜色。它生成一组盒装字母,颜色为 0 到 340 范围内的色调,呈现在黑色背景上。
字母颜色以完全饱和度和 50% 亮度开始。选中选项框并单击按钮,通过增加亮度和降低饱和度来调整接近蓝色的颜色。
240
,gain
设置为20
百分比单位,