2

我定义了以下较少的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 选项时发生。如果我选择不缩小,#ffffff 会变成“白色”,效果很好。

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

我尝试了很多东西,但都没有奏效。

4

1 回答 1

2

对于 8 char hex,这已在 dotless main 中修复 - https://github.com/dotless/dotless/commit/52ba9a4ccf4e9a895d557f01112ab4c7f4cad8a7

这是在当前版本中。

如果您需要 6 char hex,您可以尝试使用插值

〜“@col”

不过,我不确定它是否会起作用。

于 2012-09-19T08:08:11.637 回答