8

文件1.scss

@function toPx($n) {
    @return $n + 0px;
}

文件2.scss

body {
   font-size:toPx(10);
}

文件 3.scss

@import "file1.scss";
@import "file2.scss";

file3.css 的输出包含

body {
       font-size:toPx(10);
    }

即使我直接导入到 file2.scss,我也无法让我的 toPx 函数工作。如果我在 file2.scss 中声明 toPx 它将起作用。

我是 SASS 的新手,所以假设我在这里遗漏了一些简单的东西,有人能告诉我什么吗?

令人惊讶的是,我正在使用的 sass 编译器 Scout 不会引发错误,而只是将 toPx(10) 呈现到输出 CSS 中。

编辑

我发现这个参考似乎表明我需要使用 Ruby API 才能实现全局功能。有人能澄清一下吗?

http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions

4

1 回答 1

1

我偶然发现了一个 hack 答案,这让我认为这可能是一个 Scout 错误。

我将 file3.scss 更改为此

@import "file1.scss";
@import "file2.scss";
body {
       font-size:toPx(10);
    }

编译后,它按预期工作。接下来,我将文件改回我在问题中描述的方式,现在我对 toPx 的所有调用都可以在任何文件中使用。

于 2013-03-14T01:32:46.043 回答