我有一個rails應用程序,其中我需要一個css文件,以便通過ruby代碼更改其屬性。 ex。 background_color:<%=返回背景顏色的紅寶石代碼%>如何在css文件中編寫ruby代碼
因此,用戶可以設置其CSS屬性,並將只適用於像主題那樣的用戶。
謝謝!
我有一個rails應用程序,其中我需要一個css文件,以便通過ruby代碼更改其屬性。 ex。 background_color:<%=返回背景顏色的紅寶石代碼%>如何在css文件中編寫ruby代碼
因此,用戶可以設置其CSS屬性,並將只適用於像主題那樣的用戶。
謝謝!
看看這個截屏解釋如何使用ERB(Rails的模板系統) http://nubyonrails.com/system/images/css-erb-small.mov
檢查出this tutorial關於使用SASS引擎動態更改CSS。
而且,看看http://lesscss.org/
建立動態CSS文件,如果您只是需要一些簡單 ,那麼你可以做你的佈局:
<head>
....
<% unless current_user.theme.nil? %>
<style>
body{
background:<%= current_user.theme.background_color%>;
}
</style>
</head>
<% end %>
如果你開始一個新的項目,SASS是要走的路,可能如果你有足夠的時間,就是要走的路。如果只有幾個條目,那麼在HTML中執行它可能並不壞。
注:我覺得有點骯髒,但它會工作。
你不能/不應該這樣做。您將預編譯您的資產,因此無法動態適應變化的變量。這是一個不好的模式使用。
一個更簡單的方法是在您的元素(body)上添加一個類.active
.inactive
。或輸出內聯css在你的腦海中,像自定義顏色等,取決於用戶登錄。
你想做什麼?這聽起來像是你想要檢查你是在生產還是在開發中?在這種情況下,你可以這樣做:
<body class='<%= "development" if Rails.env == 'development' %>'>
甚至
<body <%= "style='background-color: red;'" if Rails.env == 'development' %>
你應該從來不需要使用Ruby在你的CSS和JavaScript,如果你發現自己在做它,你很可能接近它的錯誤的方法。至少這是我在多次嘗試做得很好之後發現的。
你可以在你的腦袋做到這一點:
<style>
.user .name{
color: <%= current_user.chosen_color %>;
}
</style>
附:數據屬性是一種將變量等傳遞給javascript的非常有效的方式。這是我在這裏的答案的改編:Creating scss variable in config.rb for scss files我認爲這也適用於任何來到這裏的人,所以我也在這裏回答。
「不存在的域」 - 這將是很高興知道這是如何完成的。這就是爲什麼張貼鏈接不適合答案。 – JosephK 2017-02-03 08:18:03