是否可以在编译时设置sass变量?我基本上想要这样做:
$color: red !default;
div#head {
background-color: $color;
}
当我编译为css时,我想将$ color设置为“blue”(最好是从命令行)。有没有人能够做到这一点?
谢谢, 克里斯
答案 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数据
但似乎不建议这样做。可能出于性能原因。