在 Rails 3.1.0 元素中,我的公司具有一些可自定义的属性,例如 background_color 和 link_color。我希望能够像这样设置一些 Sass 变量:
$background_color: <%= @company.background_color %>
$link_color: <%= @company.link_color
...
这是行不通的,因为当 Sass 执行它的操作时,@company
为 nil。我不确定如何以动态的方式解决这个问题(可以创建公司,可以更改颜色,并且可以立即更新 View )。有什么建议吗?
最佳答案
我可以想到几个方法:
- 通过 Controller 提供您的样式表。
- 使用 CSS 类来配置颜色并通过 Controller 、内联部分或 CSS 仅提供该 CSS
@import
.
通过 Controller 提供样式表非常简单,因此无需多言。这可能有点丑陋和麻烦。
对于第二个,您需要添加几个额外的 CSS 类:
.custom-bg {
background-color: some-default-bg;
}
.link-fg {
color: some-default-fg;
}
/*...*/
然后任何需要使用自定义背景颜色的元素都需要它们通常的 CSS 类和 custom-bg
;其他可配置值需要类似的恶作剧。要提供自定义 CSS,您可以内联 <style>
使用标准的 ERB 部分将元素添加到您的 HTML 中,或者您可以通过 Controller (通过 <style src="...">
或 @import
)提供 CSS。因此,您可以在 HTML 中使用老派的多个 CSS 类来伪造 SASSy 的优点。
还有 JavaScript。你需要一些方法来识别需要调整颜色的元素,然后直接用这样的东西调整它们:
$('.need-custom-background').css('background-color', '...');
关于ruby-on-rails - 如何访问 Sass 中的 Rails 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440335/