我定义了以下较少的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中停止颜色十六进制代码缩小?或者有什么方法可以解决这个限制吗?
我尝试过很多东西,但都没有。
答案 0 :(得分:2)
对于8个字符的十六进制,这已在无点主文件中修复 - https://github.com/dotless/dotless/commit/52ba9a4ccf4e9a895d557f01112ab4c7f4cad8a7
这是当前版本。
如果您需要6个字符十六进制,可以尝试使用插值
〜 “@col”
虽然,我不确定它会起作用。