在config.rb创建SCSS变量SCSS文件(Creating scss variable in

2019-10-19 23:50发布

如何在Config.rb定义SCSS变量SCSS文件[COMPASS项目]

我用例

在Config.rb文件类似

a = true

在style.scss我喜欢用像变量

@if a == true{
     background: #fff;
} 
@else {
   background: #000;
}

其中一个解决方案的http://worldhousefinder.com/?p=124141

但它不是为我工作。

Answer 1:

你不能/不应该这样做。 您将预编译的资产,所以没有动态地适应不断变化的变量的方式。 这可能会为你的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



Answer 2:

首先,你看着变量和混入 ?

如果你真的想外面变量传递给SASS,你必须明白,它不知道当它编译CSS您的配置文件中。 据内森魏泽鲍姆 (的Haml的主要开发者之一),要做到这一点是通过创建自定义的最佳方式用户定义的函数

如果你走这条路(再次引用森):

你要确保你的样式表得到再生每当数据更改。 你可以通过调用这样做Sass::Plugin.force_update_stylesheets



文章来源: Creating scss variable in config.rb for scss files