如何将列表作为单独的参数传递给SASS中的mixin?

时间:2013-01-10 14:39:33

标签: variables sass compass-sass mixins

我有一些使用指南针阴影混合的元素。由于参数是相同的,我希望将它们放在变量中。我认为这是variable arguments的用途,但显然我做错了,因为以下不起作用:

// my shadow style
$shadow: #000000, 0px, 0px, 20px;

.list {
    @include single-box-shadow($shadow...);
}

这应该与

相同
.list {
    @include single-box-shadow(#000000, 0px, 0px, 20px);
}

但是第二个例子有效,第一个例子正在编译为

-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;

我在这里做错了什么?

指南针版本为0.12.2,SASS为3.2.3。

编辑:我正在与自耕农进行编译,也许它使用了不同的(较旧的)版本?我该怎么检查?

1 个答案:

答案 0 :(得分:0)

single-box-shadow mixin不使用变量参数(参见:http://compass-style.org/reference/compass/css3/box_shadow/#mixin-single-box-shadow)。

当您使用变量调用mixin时,您实际上在做的是:

@include single-box-shadow((#000000, 0px, 0px, 20px));

整个列表作为mixin的第一个参数传递:$color。如果要重用特定的box-shadow值,请将box-shadow mixin与空格分隔列表一起使用,或者创建自己的自定义box-shadow mixin。