无法将函数作为参数传递给mixin

ith*_*hil 2 sass mixins

我正在尝试在Sass中创建一个mixin用于:悬停操作,但我无法使其工作.

我宣布混合:

@mixin hover($action, $color, $amount) {
    color: $action($color, $amount);
}
Run Code Online (Sandbox Code Playgroud)

我的想法是使用Sass Script Funcions通过基本上使其变或变暗来改变悬停链接的颜色.所以我举例说:

a {
    &:hover {
        @include hover(darken, $footer-text-color, 5%);
    }
}
Run Code Online (Sandbox Code Playgroud)

$footer-text-color 是我之前定义的变量,它等于十六进制颜色,例如#84b3c8.

我希望这与...相同

 a {
    &:hover {
        color: darken($footer-text-color, 5%);
    }
}
Run Code Online (Sandbox Code Playgroud)

相反,它在纯CSS中编译的是:

color: darken #84b3c8, 5%;
Run Code Online (Sandbox Code Playgroud)

显然,颜色功能不起作用,但真诚地我不明白为什么.我确定这是愚蠢的事情,也许是mixin参数中变量和字符串值之间的混合?

cim*_*non 5

函数和mixin 在Sass 中不是一流的,这意味着它们不能作为参数传递给其他函数或mixin.

在Sass 3.3中,有一个名为的新函数call()可以为您提供所需的行为:

@mixin hover($action, $color, $amount) {
    color: call($action, $color, $amount);
}
Run Code Online (Sandbox Code Playgroud)