仅在主页上的CSS背景图像,在Rails应用程序中

时间:2012-12-13 17:54:54

标签: css ruby-on-rails-3 twitter-bootstrap

我目前正在开发Rails应用程序,并且能够将图像作为主页的背景。但是,我将代码放在主页css文件中,但它也应用于应用程序css文件。这导致图像成为应用程序中所有页面的背景。

在Rails 3.1+应用中,如何才能将背景图片显示在主页上?

我尝试将背景图片css块移动到另一个css文件,但它仍然适用于所有页面。

3 个答案:

答案 0 :(得分:4)

为您想要的页面声明样式内联,如果您在CSS文件中声明并且您在多个文档中链接这些文件,那么显然它将采用相应元素的背景图像

假设它像index.html

<style>
body {
   background-image: url('#');
}
</style>

或者只是声明一个类并在该特定页面上应用

.unique { /* In Your CSS File */
   background-image: url('#');
}

<body class="unique"></body>

答案 1 :(得分:1)

仅在该页面的body标签上使用类名。为该类创建相应的CSS声明。

答案 2 :(得分:0)

我不确定这是否是最好的方法,但我通过制作两个应用程序布局解决了我的一个应用程序中的问题,一个用于主页(home_application.html.erb),另一个用于所有应用程序布局其他页面(application.html.erb)。在您的CSS文件中添加一个id标记:

#home {
  background: url(example.jpg);
}

制作application.html.erb

<!DOCTYPE html>
<html>
  <head>
    header
  </head>

  <body>
    stuff
  </body>

</html>

制作home_application.html.erb

<body id="home">
    stuff
</body>

然后在static_pages_controller(或您用于主页的任何控制器)中放置:

def home
    render 'layouts/home_application.html.erb'
end

这将通过仅更改<body>标记的ID来呈现包含主页背景图像的布局以及所有其他页面的所有其他布局。