获得具有相同色调但另一种颜色的颜色?

时间:2012-09-09 13:06:05

标签: css colors

在我的CSS中,我将#error div定义为:

#error {
    border-width:1px;
    border-style:solid;
    border-color: #DD3C10;
    background:#FFEBE8;
    /* Other settings */
}

上面的代码不是我的,实际上 - 我使用了与Facebook相同的颜色。现在,我想对#success div做同样的事情,但我不知道使用哪种颜色。我想保持相同的色调(即“全彩色”和“白色”之间的线条上的位置),但是绿色而不是红色。我该怎么做?有没有“公式”?

2 个答案:

答案 0 :(得分:1)

您关心颜色的HSL表示中的L(亮度)分量。您可以在此处找到在线转换器(RGB / HEX到HSL):little link

#DD3C10的HSL为13° 86% 46%,而#FFEBE88° 100% 95%。如你所见,亮度的差异是49%

假设border的绿色为#00FF00,HSL为120° 100% 50%。要计算新的亮度组件,只需添加49%即可。因此background的绿色为120° 100% 99%,即#FAFFFA

答案 1 :(得分:0)

肯定有一种简单的方法。只需使用HSL颜色系统,而不是RGB - 使用它来更直观地选择所需的颜色,这是在着色图像时使用的颜色系统。

然后您需要做的就是将基色表示为HSL颜色,然后只需更改饱和度或亮度,同时保持色调相同。

E.g

  • borderCol =#DD3C10; (rgb)---- hsl(13,93%,87%)
  • background =#FFEBE8; (rgb)--- hsl(8,9%,100%)

  • borderCol =#49DD10; (rgb)---- hsl(103,93%,87%)
  • background =#f0ffe8; (rgb)--- hsl(98,9%,100%)