IE梯度过滤器的LessCss w / dotLess mixin问题

时间:2012-09-19 07:41:14

标签: less mixins css dotless

我定义了以下较少的mixin:

.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选项时发生。如果我选择不缩小,#fffffff会变成'白色',这很好。

我的问题是如何在mixin中停止颜色十六进制代码缩小?或者有什么方法可以解决这个限制吗?

我尝试过很多东西,但都没有。

1 个答案:

答案 0 :(得分:2)

对于8个字符的十六进制,这已在无点主文件中修复 - https://github.com/dotless/dotless/commit/52ba9a4ccf4e9a895d557f01112ab4c7f4cad8a7

这是当前版本。

如果您需要6个字符十六进制,可以尝试使用插值

〜 “@col”

虽然,我不确定它会起作用。