2012-09-19 40 views
2

LessCss w表示IE漸變濾鏡/帶點混入的問題,我有以下較少混入定義

.TopDownActiveGradient(@s1, @s2){ 
background: -moz-linear-gradient(top, @s1 0%, @s2 100%); /* FF3.6+ */ 
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@s1), color-stop(100%,@s2)); /* Chrome,Safari4+ */ 
background: -webkit-linear-gradient(top, @s1 0%, @s2 100%); /* Chrome10+,Safari5.1+ */ 
background: -o-linear-gradient(top, @s1 0%, @s2 100%); /* Opera 11.10+ */ 
background: -ms-linear-gradient(top, @s1 0%, @s2 100%); /* IE10+ */ 
background: linear-gradient(to bottom, @s1 0%, @s2 100%); /* W3C */ 
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@{s1}', endColorstr='@{s2}'); /* IE6-8 */} 

而且它使用的是這樣的:

.TopDownActiveGradient(#f7f7f7, #fffffe);

現在,它工作正常時,我輸入的顏色不能簡化成簡寫形式(例如#dadada),這意味着如果我使用#ffffff作爲可以轉換爲#fff的顏色,那麼將不起作用,因爲Ie6-8的過濾器期望全色十六進制值。

此問題僅在打開minify選項時發生。如果我選擇不縮小,#ffffff會變成「白色」,這很好。

我的問題是我怎樣才能停止在我的mixin顏色十六進制代碼縮小?或者有沒有辦法解決這個限制?

我已經嘗試了很多東西,但都沒有工作。

+0

嘗試不同的壓縮機?也許' - yui-compress'可能會起作用。 – Christoph

回答

2

對於8進制字符,這已被固定在主帶點 - https://github.com/dotless/dotless/commit/52ba9a4ccf4e9a895d557f01112ab4c7f4cad8a7

這是在當前版本。

如果您需要6個十六進制字符,你可以嘗試使用插值

〜「@col」

雖然,我不知道它會工作。

+0

感謝盧克。我想投票但尚未擁有足夠的聲望。我不熟悉github上的dotless main ...有沒有辦法現在下載它,或者我必須等待?我找不到1.3.0.5以外的任何東西。並幫助我理解這一點:這是否意味着從1.3.1開始,顏色不會被壓縮?或者它是爲IE嗎?我似乎無法理解您向我展示的頁面的邏輯。順便說一句,我從Nuget獲得了無點安裝。 – SamuelC

+0

github上有源代碼..你必須下載和編譯。我做了一個構建,並把它放在github和Nuget上。更改僅停止,即壓縮顏色(8個十六進制字符)。 –

+0

然後解決方案不會幫助我的問題。我的問題是#ffffff被轉換成#fff,它與IE的過濾器不兼容,它需要全部6個十六進制字符。 – SamuelC