如何在Rails 3站点中为每个页面设置不同的背景图像?
我正在试图弄清楚如何为我的Rails 3网站的每个页面设置不同的背景图像。 如何在不必重复我的css文件中为每个页面重复的内容的情况下完成此操作?
application.html.erb
Site title "all" %>
pages.css.scss
.container { width: 800px; height: 640px; position: absolute; left: 50%; top: 50%; margin-top: -320px; margin-left: -400px; background-image: url(amber1.jpg); background-repeat: no-repeat; background-color: black; font-family: times new roman, serif; text-align: center; }
我认为你不能用css做到这一点。 即使使用scss,也必须先将其编译为纯css,然后才能使用它,因此无法动态更改它。 但你可以省略css中的背景图像然后再做
然后你需要做的就是在某种before_filter的控制器中设置@my_computed_image_path。
您可以直接在html中设置background-image属性,如下所示:
Site title <%= stylesheet_link_tag "application", :media => "all" %> <%= javascript_include_tag "application" %> <%= csrf_meta_tags %> <%= yield %> <%= render 'layouts/footer' %>
您可以直接从@page变量或您想要的方式设置背景图像。
如果您愿意,还可以使用如下样式表为每个页面设置不同的类:
.page_one{background-image: url(your_first_image.jpg)} .page_two{background-image: url(your_second_image.jpg)} . .
在你的HTML中:
您可以创建my_styles.scss.erb文件并设置如下变量:
$body-background-color: <%= @page.body_background_color %>
然后你可以在你的scss文件中使用它。