SASS:在编译时设置变量

时间:2011-04-08 00:17:10

标签: css variables sass compile-time

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


$color: red !default;
div#head {

  background-color: $color;

}

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

谢谢, 克里斯

2 个答案:

答案 0 :(得分:6)

备用命令行选项是创建为变量赋值的其他文件。

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

$color: blue;
@import "style";

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

sass blue.scss:style.css

如果要为变量指定另一个值,请创建另一个名为“green.scss”的文件,如:

$color: green;
@import "style";

然后用

编译它
sass green.scss:anotherstyle.css

有些困扰但能够在编译时决定变量的值。

答案 1 :(得分:6)

我在他们的常见问题http://sass-lang.com/docs/yardoc/file.FAQ.html

中找到了这个

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

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

  

您可以使用Sass::Engine使用:custom option呈现代码   传入来自Sass函数的can be accessed数据

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