0

我为我的 Visual Studio(Web 工作台)添加了 Sass 插件。这很好,因为一旦我保存了 .scss 文件,就会立即生成 css 文件。无论如何,我设置了一个 IE 'filter:' 并且 Sass 编译器正在添加额外的空间。

我的变量:

$blueColor: 5993D3; 
$lightColor: FFFFFF;

我的mixin:( 浅色是白色,在所有调用中都是相同的,这就是为什么它没有作为变量传递)

@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 工作正常。没有空间。有什么想法吗?

4

1 回答 1

1

我认为问题在于 SASS 无法正确理解$blueColor变量的数据类型(它不是十六进制颜色,因为它不以 # 开头,如果您用字母更改第一个字符,则不会出现空格) .

通过向变量添加引号来修复它

$blueColor: "5993D3";

它不会出现在输出中,因为您已经在 mixin 中使用了插值 #{}。

于 2012-11-18T19:52:53.907 回答