2013-08-29 27 views
2

正如您可能知道的,LESS提供了許多以色彩爲導向的操作(例如:darken()lighten()mix()),並且它們都很好。 不幸的是,我無法開始理論上最酷的一種:自動設置顏色的功能與您提供的顏色相反。 來自官方的LESS規格:LESS contrast()功能

contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]); 

所以,我的LESS基本上設置有一個背景變量,可以改變很多(我工作的基於主題的網站)和它的文本顏色應適應。

&.popup{ 
     .body{ 
     background-color: @popupBg; 
     color: contrast(@popupBg, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]); 
     } 
    } 

當檢查控制檯中的輸出代碼時,我可以看到該功能沒有正確解析(Chrome通知錯誤,Firefox只是隱藏它)。我也嘗試過簡化版本,只是color: contrast(@popupBg);,沒有運氣。

以前有人用過這個嗎?我一直在使用LESS,現在這是第一次給我帶來問題。

+0

只是一個快速提示:[]是可選參數 –

回答

6

方括號表示可選參數,不應出現在您的代碼中。退房的功能較少的參考和documentation on contrast,但對如何正確使用contrast一個例子:

Example: 

contrast(#aaaaaa) 
contrast(#222222, #101010) 
contrast(#222222, #101010, #dddddd) 

Output: 

#000000 // black 
#ffffff // white 
#dddddd 

所以,你的代碼應該閱讀:

color: contrast(@popupBg, black, white, 43%); 

在另一方面,你確定@popupBg是否定義?

查看this jsfiddle進行演示。

+0

的符號我試過了,但在控制檯中,我得到了整個表達式作爲輸出(=錯誤)。 該變量被正確定義爲背景實際上是由瀏覽器正確讀取的:\ – Virgilivs

+0

我製作了一個[jsfiddle,對我有用](http://jsfiddle.net/ZfNnc/2/) –

+0

我看到它了實際上是在工作......這是非常令人費解的。 也許我的PHP編譯器是責怪?無論如何,我很高興知道這個錯誤不在LESS的一邊。謝謝! – Virgilivs