如何Config.rb定義SCSS變量SCSS文件[COMPASS項目]創建SCSS變量SCSS文件
我的用例
在Config.rb文件的東西像
a = true
在style.scss我喜歡使用的變量等
@if a == true{
background: #fff;
}
@else {
background: #000;
}
解決方案之一 http://worldhousefinder.com/?p=124141
但它沒有爲我工作。
如何Config.rb定義SCSS變量SCSS文件[COMPASS項目]創建SCSS變量SCSS文件
我的用例
在Config.rb文件的東西像
a = true
在style.scss我喜歡使用的變量等
@if a == true{
background: #fff;
}
@else {
background: #000;
}
解決方案之一 http://worldhousefinder.com/?p=124141
但它沒有爲我工作。
你不能/不應該這樣做。您將預編譯您的資產,因此無法動態適應變化的變量。這可能適用於你的config.rb變量,但是這是一種不好的模式,每次你改變變量時你都必須重新編譯你的資源,這樣做會影響你在sass中進行其他檢查的目的。
一個更簡單的方法是在您的元素(body)上添加一個類.active
.inactive
。或者在你的腦海中輸出內聯css,根據用戶的喜好自定義顏色等等。
你想做什麼?這聽起來像是你想要檢查你是在生產還是在開發中?在這種情況下,你可以這樣做:
<body class='<%= "development" if Rails.env == 'development' %>'>
甚至
<body <%= "style='background-color: red;'" if Rails.env == 'development' %>
你應該從來不需要使用Ruby在你的CSS和JavaScript,如果你發現自己在做它,你很可能接近它的錯誤的方法。至少這是我在多次嘗試做得很好之後發現的。
p.s.數據屬性是一種非常有效的傳遞變量等的方法javascript
Thx for你的回覆,是的,我想重新生成樣式表。我需要用一個scss文件來創建** RTL和LTR **樣式表。 – Vadivelmsc
如果你真的想把外部變量傳遞給SASS,你必須明白它在編譯CSS時並不知道你的配置文件。 According to Nathan Weizenbaum(Haml的主要開發者之一),最好的方法是創建自定義的user-defined functions。
如果你走這條路(再次引用森):
你要確保你的樣式表 得到再生每當數據更改。您可以致電
Sass::Plugin.force_update_stylesheets
。
Thx爲您的答覆,是的,我想重新生成樣式表。我需要用一個scss文件來創建** RTL和LTR **樣式表。 – Vadivelmsc
可能重複的[如何在css文件中編寫ruby代碼](http://stackoverflow.com/questions/3301195/how-to-write-ruby-code-in-css-file) –