SASS使用变量定义中的函数

时间:2016-01-13 11:40:49

标签: function sass variable-declaration node-sass

我正在使用node-sass并尝试构建一组易于重新定义的样式,这意味着,例如,更改一种颜色将更新其他颜色。

我有一个功能,它采用一种颜色(背景颜色),确定亮度,并输出预设的暗色或浅色作为文本颜色。我之前使用过相同的功能,效果很好。它包含在sass文件中,并且已经测试它是否有效。

@function color-contrast($color) {
  @if (lightness($color) > 50) {
    @return $color-text-dark; //if the background is more than 50 lightness, return the dark colour
  }
 @else {
   @return $color-text-light; //if not, return the light colour
 }
}

但是,我现在尝试在变量声明中使用此函数。所以我有

$contentbox-text-color: color-contrast($bg-color) ;

($ bg-color,$ color-text- etc在表格的前面设置)

问题是,无论我在哪里使用$ contentbox-text-color,我都将其视为颜色值

color-contrast(blue);

(其中"蓝色"是$ bg-color值) - 而不是函数的结果,我希望看到它。我已尝试插入如下所示的函数,但结果是相同的

$contentbox-text-color: #{color-contrast($bg-color)} ;

我需要通过变量访问此函数,然后我使用变量(/结果颜色)作为mixin的参数,以及其他各种地方。

有谁知道有什么方法可以实现我想做的事情?我无法找到有关在变量中使用函数的任何信息,因此我不知道这是不可能的,或者我是否只是缺少某些语法工作正常!

谢谢:)

快速更新:如果我直接在mixin中将函数作为参数调用,则编译正确,但理想情况下我希望能够简单地使用变量名,以便可以在整个过程中使用相同的变量(如果由于某种原因它改变了,这是可能的,那么必须去每个mixin并更新参数而不是简单地依赖变量会很痛苦!)

0 个答案:

没有答案