2012-12-13 20 views
1

我目前正在研究Rails应用程序,并且能够获取图像作为主页的背景。不过,我将代码放在主页的css文件中,但它也被应用到应用程序的css文件中。这导致图像成为应用程序中所有页面的背景。仅在主页上的CSS背景图像,在Rails应用程序中

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

我试图将背景图像CSS块移动到一个不同的CSS文件,但它仍然适用于所有页面。

回答

4

声明样式内嵌您想要的页面,如果你在CSS文件中声明,您在多个文档链接这些文件不是很明显这将背景图像的各个元素

假设它就像index.html

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

或者干脆声明一个类以及特定网页上应用对身体

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

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

这是有道理的,我试过了。它部分的工作,我遇到的问题是在Rails中分配部分。我认为这个问题更多的是Rails问题,实现一个单独的主页css的最佳方式是什么。一个很好的例子是Michael Hartl的Rails教程https://github.com/railstutorial/sample_app_2nd_ed – FluxEngine

+0

如何将sample_app_2nd_ed/app/views/static_pages/home.html.erb更改为独立背景,您将如何更改sample_app_2nd_ed/app/views/layouts/application.html.erb来适应。或者最好只创建另一个布局文件并将其实施到home.html.erb – FluxEngine

+0

如果您在站点的每个页面上都有自定义的CSS正文类,则可以轻松地为该特定页面的任何样式命名空间。 –

1

使用一个类名标签仅用于该页面。为该类创建相应的CSS声明。

0

我不确定这是否是这样做的最好方法,但是我通过制作两个应用程序布局(一个用于主页(home_application.html.erb)和一个用于所有其他页面(application.html.erb)来解决此问题) 。把一个ID标签在你的CSS文件:

#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来为主页的背景图像和所有其他页面的其他所有内容的布局呈现布局。