我目前正在开发 Rails 应用程序,并且能够获取图像作为主页的背景。但是,我将代码放在主页 css 文件中,但它也被应用于应用程序 css 文件。这导致图像成为应用程序中所有页面的背景。
在 Rails 3.1+ 应用程序中,如何让背景图像仅出现在主页上?
我试图将背景图像 css 块移动到不同的 css 文件,但它仍然适用于所有页面。
我目前正在开发 Rails 应用程序,并且能够获取图像作为主页的背景。但是,我将代码放在主页 css 文件中,但它也被应用于应用程序 css 文件。这导致图像成为应用程序中所有页面的背景。
在 Rails 3.1+ 应用程序中,如何让背景图像仅出现在主页上?
我试图将背景图像 css 块移动到不同的 css 文件,但它仍然适用于所有页面。
为您想要的页面声明样式内联,如果您在 CSS 文件中声明并将这些文件链接到多个文档中,那么显然它将采用相应元素的背景图像
假设它就像index.html
<style>
body {
background-image: url('#');
}
</style>
或者简单地声明一个类并应用于该特定页面
.unique { /* In Your CSS File */
background-image: url('#');
}
<body class="unique"></body>
仅在该页面的 body 标记上使用类名。为该类创建相应的 CSS 声明。
我不确定这是否是最好的方法,但我通过制作两种应用程序布局(一种用于主页(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 来呈现具有主页背景图像的布局和所有其他页面的所有其他页面的布局。