将列表传递给SASS中的mixin作为参数?

时间:2012-06-19 00:11:16

标签: compass-sass sass

我试图通过定义一组将在大量mixins和Compass库中使用的常量来轻松配置SCSS样式表。理想情况下,我希望能够做到以下几点:

$item-bgs: linear-gradient(white, black), #ccc;

@mixin some-mixin() {
    @include background-with-css2-fallback($item-bgs*);
}

background-with-css2-fallbackCompass mixin,最多可接受10个参数。我假设SASS当前不支持传递list参数作为参数列表,否则Compass可能会使用它,但我想知道我是否可以将$item-bgs列表作为第一个background-with-css2-fallback mixin的2个参数。目前是否有办法实现这一目标,或者未来是否计划在SASS中使用?

1 个答案:

答案 0 :(得分:1)

本地SASS可能不支持它,但Compass确实支持将列表作为background-with-css2-fallback mixin的第一个参数传递。如果查看mixin的源代码,您会看到它使用compact函数来处理将参数折叠到单个列表中的逻辑,无论是单独传递还是在单个列表参数中传递。

例如,这对我来说很好用:

@import "compass";

$item-bgs: (linear-gradient(white, black), #ccc);

.test {
    @include background-with-css2-fallback($item-bgs);
}