不同的页面的不同的背景颜色在路轨
所以我使用的是application.html.erb文件,它基本上是我网站中每个页面的布局。 但我希望主页有白色背景,其余页面有不同的背景。 问题是,如果我将整个主页文件包装在div中,它只包装“yield”位置,因此它显示为带有灰色背景的较大框内的白色背景的框。 那么如何更改主页的整个背景并保留其余部分呢?
谢谢!
扩展@muffinista提供的答案:您可以使用控制器中设置的实例变量来确定何时将“homepage”类放在body标签上。 所以:
def index @home_page = true # existing code end
并在布局中:
<%= yield %>
考虑在主页的body标签(或者主要的包装器)上放一个特殊的类,然后在CSS中进行。 所以你可以在你的主页上:
hi!
然后在你的其他页面上:
i am not a homepage!
在你的CSS中:
body { // some general css } body.homepage { // some css for homepage elements background-color: #000000; }
更新 :你可以使用这样的助手让生活更轻松:
def body_class @body_class || '' end
然后在您的主页视图中,将这样的内容放在顶部:
<% @body_class = "homepage" %>
显然这取决于你的应用程序的细节,但它对我来说很好。
只是为了添加到接受的答案,如果您需要为多个页面设置不同的背景,那么将有意义并添加可读性以将代码移动到部分中以找到适当的背景:
>
_background.html.erb:
<%- if @main_page_background OR @stylish_background %> "main_page_background" <%- elsif @dark_background %> "dark_page_background" <%- else %> "" <% end %>
- 如何在rails 4中管理多个css文件?
- 将style.css.scss更改为style.css.scss.erb时找不到文件错误
- 无法使用class = pull-right或float:right浮动twitter bootstrap导航栏项目
- 使用form_for Rails嵌套模型表单时为创建唯一ID
- 安装bootstrap gem后,Pages#welcome中的NoMethodError
- 如何使用Rails中的css和图像创建电子邮件?
- 如何应用自定义的Bootstrap消息错误来设计?
- 如何从辅助方法设置变量以包含在SASS SCSS样式表中?
- RefineryCMS:将引导样式应用于导航菜单