2012-09-09 78 views
1

在我的CSS,我所定義的#error格爲:獲取具有相同色調但具有其他顏色的顏色?

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

上面的代碼是不是我的,其實 - 我用同樣的顏色如Facebook。現在,我想和#success div一樣,但我不知道要使用哪種顏色。我想保持相同的色調(即,「全綵色」和「白色」之間的線上的位置),但是保持綠色而不是紅色。我該怎麼做?有沒有一個「公式」?

+1

這是chrome開發工具創建的原因之一。邊框顏色:#10DD18; 背景:#EEFFE8;沒有公式可以在任何地方找到,只是眼球。甚至在rgb:border-color:rgb(16,221,24); background:rgb(238,255,232); – TigOldBitties

回答

1

您關心顏色的HSL表示中的L(亮度)分量。你可以在這裏找到一個在線轉換器(RGB/HEX到HSL):little link

HSL對於#DD3C1013° 86% 46%,而#FFEBE88° 100% 95%。正如你所看到的,亮度差異是49%

假設您的綠色爲border#00FF00,這是HSL中的120° 100% 50%。要計算新的亮度分量,只需添加49%。因此background的綠色爲120° 100% 99%,即#FAFFFA

+0

HSL:13°86%23%RGB:109 30 8 Hex:#6D1E08 vs HSL:8°100%95%RGB:255 235 232 Hex:#FFEBE8。由於原稿在飽和度和色調方面存在差異,因此仍然看不到您的觀點。 – TigOldBitties

+2

LESS和其他CSS預處理器允許這種類型的內聯:) – WickyNilliams

+0

@TigOldBitties查看更新的答案以獲得更多詳細說明。 – Chris

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%)