我为我的Visual Studio(web工作台)添加了Sass插件。这很好,因为一旦我保存.scss文件,就会立即生成css文件。无论如何,我有一个IE'过滤器:'设置,Sass编译器正在增加额外的空间。
我的变量:
$blueColor: 5993D3;
$lightColor: FFFFFF;
我的混音: (浅色是白色的,在所有调用中都是相同的,这就是它不作为变量传递的原因)
@mixin filterIE($startColor) {
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1,StartColorStr='#FF#{$startColor}', EndColorStr='#00#{$lightColor}');
}
我的收录:
@include filterIE($blueColor);
输出问题。它在其中添加了一个额外的空间(注意StartColorStr中的3个。无论我尝试什么,它都会增加一个空间。我在页面上还有其他几个,它们工作正常。
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#FF5993D 3', EndColorStr='#00FFFFFF');
你可以看到lightColor正常工作。空间不足。有什么想法吗?
答案 0 :(得分:1)
我认为问题在于SASS无法正确理解$blueColor
变量的数据类型(它不是十六进制颜色,因为它不以#开头,如果您更改第一个字符字母空格没有出现。)
通过在变量
中添加引号来修复它$blueColor: "5993D3";
,因为你已经在mixin中使用了插值#{},所以它无论如何都不会出现在输出中。