SASS:在编译时设置变量

Ken*_*zic 9 css variables sass compile-time

是否可以在编译时设置sass变量?我基本上想要这样做:


$color: red !default;
div#head {

  background-color: $color;

}
Run Code Online (Sandbox Code Playgroud)

当我编译为css时,我想将$ color设置为"blue"(最好是从命令行).有没有人能够做到这一点?

谢谢,克里斯

rep*_*ets 6

另一个命令行选项是创建为变量赋值的其他文件.

假设您的代码位于名为"style.scss"的文件中.要将$ color设置为"blue",请创建一个文件,例如:

$color: blue;
@import "style";
Run Code Online (Sandbox Code Playgroud)

并将其命名为'blue.scss'.然后用下面编译它.

sass blue.scss:style.css
Run Code Online (Sandbox Code Playgroud)

如果要为变量分配另一个值,请创建另一个名为"green.scss"的文件,如:

$color: green;
@import "style";
Run Code Online (Sandbox Code Playgroud)

然后用它编译它

sass green.scss:anotherstyle.css
Run Code Online (Sandbox Code Playgroud)

它有点麻烦,但能够在编译时决定变量的值.


Cai*_*nha 6

我在他们的常见问题解答http://sass-lang.com/docs/yardoc/file.FAQ.html上找到了这个

如果你只是想在每次编译时将一些变量传递给CSS,比如使用--watch,你可以使用Sass函数来定义Ruby脚本甚至查询数据库.但代码只编译一次,并静态提供.

但是,如果您需要在每个具有不同选项的请求中重新编译它,

您可以使用Sass :: Engine来呈现代码,使用:custom选项 传递可以从Sass函数访问的数据

但似乎不建议这样做.可能出于性能原因.