2012-10-03 63 views
0

希望我設法誘餌您使用的BSOD標題=)鏈輪,SASS和IE的MS-濾波器(死亡的新藍屏)

我使用線性梯度混入其中的語法是這樣的:

+linear-gradient(top, #ffffff, #f7f7f7) 

其中預編譯後在IE 生成此

progid:DXImageTransform.Microsoft.gradient(startColorstr="#fff", endColorstr="#f7f7f7",GradientType=0) 

這在IE 8/9產生難看的藍色黑條,因爲IE拒絕接受3個字符的十六進制代碼

(嘿男人,白色和#ffffff很好,不要問我爲什麼。藍色/黑色條來自IE的默認設置,如果它不識別語法,則使用藍色/黑色作爲顏色)。

我的問題是,我如何在不壓縮字符顏色代碼的情況下rake assets:precompile?編譯時我希望儘可能縮小,但不要插入我的顏色代碼。

回答

0

SASS具有內置函數,稱爲ie-hex-str

案例分析我的例子:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#{ie-hex-str(nth($full, 1))}", endColorstr="#{ie-hex-str(nth($full, 2))}",GradientType=0); 

我覺得一般的問題是,IE 8/9不接受短六角任何東西它需要一個alpha通道,任何與透明度。相反,您可以爲它指定一個8個字符的十六進制代碼。