我正在尝试在Sass中创建一个mixin用于:hover动作,但是我无法使其工作。
我声明了mixin:
@mixin hover($action, $color, $amount) {
color: $action($color, $amount);
}
我的想法是使用Sass脚本功能通过基本变亮或变暗来更改悬停时链接的颜色。因此,例如,我尝试:
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参数中的变量和字符串值之间的混合?
函数和混入不是Sass中的一流函数,这意味着它们不能作为参数传递给其他函数或混入。
在Sass 3.3中,有一个名为的新函数call()
,它将为您提供所需的行为:
@mixin hover($action, $color, $amount) {
color: call($action, $color, $amount);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句