在scss文件中使用config.rb中定义的变量
是否可以在整个SCSS文件中使用compass项目的config.rb文件中定义的变量?在config.rb文件中添加自定义模块:在scss文件中使用config.rb中定义的变量,css,ruby,compass-sass,sass,Css,Ruby,Compass Sass,Sass,是否可以在整个SCSS文件中使用compass项目的config.rb文件中定义的变量?在config.rb文件中添加自定义模块: module Sass::Script::Functions def custom_color(value) rgb = options[:custom][:custom_colors][value.to_s].scan(/^#?(..?)(..?)(..?)$/).first.map {|a| a.ljust(2, a).to_i(16)} S
module Sass::Script::Functions
def custom_color(value)
rgb = options[:custom][:custom_colors][value.to_s].scan(/^#?(..?)(..?)(..?)$/).first.map {|a| a.ljust(2, a).to_i(16)}
Sass::Script::Color.new(rgb)
end
end
然后设置变量(同样,在config.rb文件中):
然后在您的scss文件中,您可以使用custom\u color()
函数:
body {
background-color: custom_color(main);
}
您还可以编写另一个自定义函数,通过传入字符串,然后返回相应的类实例来返回其他类型,如字体大小、度量值等
有趣的是,这将允许您将环境变量传递到compass命令行,这将生成不同的结果
因此,如果您选择以下选项:
sass_options = {:custom => { :custom_colors => {"main" => ENV["MAIN_COLOR"]} } }
你运行指南针:
MAIN_COLOR=#dd1122 bundle exec compass compile
然后,您在命令行中传递的任何颜色都将出现在生成的css中。如果您正在使用Heroku,您可以
Heroku配置:设置MAIN_COLOR=#224411
,并能够使用相同的scss文件在每个应用程序上设置模板颜色。,与在导入的基本Sass文件中定义颜色相比,这有什么好处?您可以将环境变量传入compass,然后根据不同的调色板生成一组不同的css文件?Sass_选项={:自定义=>{:自定义颜色=>{“main”=>“#ff1122”}}的含义和用途是什么?
MAIN_COLOR=#dd1122 bundle exec compass compile