如何在Config.rb定义SCSS变量SCSS文件[COMPASS项目]
我用例
在Config.rb文件类似
a = true
在style.scss我喜欢用像变量
@if a == true{
background: #fff;
}
@else {
background: #000;
}
其中一个解决方案的http://worldhousefinder.com/?p=124141
但它不是为我工作。
如何在Config.rb定义SCSS变量SCSS文件[COMPASS项目]
我用例
在Config.rb文件类似
a = true
在style.scss我喜欢用像变量
@if a == true{
background: #fff;
}
@else {
background: #000;
}
其中一个解决方案的http://worldhousefinder.com/?p=124141
但它不是为我工作。
你不能/不应该这样做。 您将预编译的资产,所以没有动态地适应不断变化的变量的方式。 这可能会为你的config.rb可变的工作,但它是一个糟糕的模式来使用,你就必须重新编译每次改变可变时间你的资产,这违背这样做的目的,如果在你的SASS其他检查。
一个更容易的办法是,要么添加一个类.active
.inactive
你的元素(身体)。 或输出内嵌CSS在你的头上的东西,如自定义颜色等根据用户正在登录。
你想做什么? 这听起来像东西,你会做检查你是否在生产或开发? 在这种情况下,你可以这样做:
<body class='<%= "development" if Rails.env == 'development' %>'>
甚至
<body <%= "style='background-color: red;'" if Rails.env == 'development' %>
你应该从来不需要使用Ruby在你的CSS和JavaScript,如果你发现自己做这件事你可能接近它在错误的道路。 至少这是我发现后,要做到这一点许多尝试很好。
PS数据的属性是传递变量的一个非常有效的方法,等来的JavaScript
首先,你看着变量和混入 ?
如果你真的想外面变量传递给SASS,你必须明白,它不知道当它编译CSS您的配置文件中。 据内森魏泽鲍姆 (的Haml的主要开发者之一),要做到这一点是通过创建自定义的最佳方式用户定义的函数 。
如果你走这条路(再次引用森):
你要确保你的样式表得到再生每当数据更改。 你可以通过调用这样做
Sass::Plugin.force_update_stylesheets
。