我正在尝试在Sass中创建一个mixin用于:悬停操作,但我无法使其工作。
我声明了mixin:
@mixin hover($action, $color, $amount) {
color: $action($color, $amount);
}
我的想法是使用Sass Script Funcions通过基本上使其变亮或变暗来改变悬停时链接的颜色。例如,我尝试:
a {
&:hover {
@include hover(darken, $footer-text-color, 5%);
}
}
$footer-text-color
是我之前定义的变量,它等于十六进制颜色,例如#84b3c8。
我希望这与
相同 a {
&:hover {
color: darken($footer-text-color, 5%);
}
}
相反,它在纯CSS中编译的是:
color: darken #84b3c8, 5%;
很明显,颜色功能不起作用,但真诚地我不明白为什么。我确定这是傻事,也许是mixin参数中变量和字符串值之间的混合?
答案 0 :(得分:5)
函数和mixins在Sass中不是第一类,这意味着它们不能作为参数传递给其他函数或mixin。
在Sass 3.3中,有一个名为call()
的新功能,可以为您提供所需的行为:
@mixin hover($action, $color, $amount) {
color: call($action, $color, $amount);
}