【问题标题】:Access SASS variable in function在函数中访问 SASS 变量
【发布时间】:2014-02-12 06:08:57
【问题描述】:

如果我的 SASS 中有以下内容:

$my-var: 1;
my_function();

这是作为函数定义的:

module Sass::Script::Functions
    def my_function
    end
end

是否可以在该函数中访问 SASS 变量 $my-var

编辑:

我的用例是这个函数将在多个样式表中使用,这些样式表都根据需要定义了自己的 $my-var 值(对于 id 图像 URL 路径)。然后将在这些样式表中的很多地方调用此函数,因此我希望避免总是将变量传递给函数。

【问题讨论】:

  • 据我所知,这既不可能也不好。你能描述一下真正的问题吗?我确信有更好的方法来实现这一点。
  • 为什么不将该变量作为参数传递给该函数?这很明显。
  • 添加了我的用例,试图澄清我的问题背后的原因。
  • 您的解释进一步表明您应该将变量作为参数传递给函数。

标签: ruby function sass


【解决方案1】:

假设您需要为您的函数下拉到 Ruby 级别,您可以使用 Sass 函数作为它的包装器,如下所示:

$default-var: 1;
@function sass-function($var: $default-var) {
    @return ruby-function($var);
}

【讨论】:

  • 实际上没有理由这样包装它。只需ruby-function($default-var);
  • @nzifnab 我并不反对,但我将 OP 的问题解释为在调用函数时想要走捷径。有问题的函数可能有 3 个参数,其中只有 2 个参数不同(例如,foo(1, 1, $var)foo(2, 3, $var)foo(9, 2, $var),最好能够将其缩写为 foo(1, 1)foo(2, 3) )。
  • 是的,这就是我的理由,变量在单个 SASS 文件(其中有很多)中永远不会改变,但每个文件都不同。此外,函数本身确实需要是一个 ruby​​ 函数,所以这个包装器可能是我最好的选择。我不确定我是否会走这条路,但这是一个不错的选择。
猜你喜欢
  • 2021-01-02
  • 2018-06-08
  • 2019-09-13
  • 2017-01-19
  • 2021-11-17
  • 2018-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多