Html 根据页面轨道更改正文背景

Html 根据页面轨道更改正文背景,html,css,ruby-on-rails,sass,Html,Css,Ruby On Rails,Sass,我在rails应用程序中使用了bootstrap-sass,它工作得很好,但是有一个特定的页面“欢迎”,我希望主体具有不同的颜色 如果我在资产中打开welcome.scss文件并添加 html, body {background:#000000;} 我没有得到任何变化,引导白色覆盖了我预期发生的变化 我怎样才能把它换成那个页面呢 我的理解是,页面css仅在您位于该页面时加载-我是否错了,它是否与在Application.scss文件中写入相同?如果您仅在该特定页面中加载该css文件,则它将仅适

我在rails应用程序中使用了bootstrap-sass,它工作得很好,但是有一个特定的页面“欢迎”,我希望主体具有不同的颜色

如果我在资产中打开welcome.scss文件并添加

html, body {background:#000000;}
我没有得到任何变化,引导白色覆盖了我预期发生的变化

我怎样才能把它换成那个页面呢


我的理解是,页面css仅在您位于该页面时加载-我是否错了,它是否与在Application.scss文件中写入相同?

如果您仅在该特定页面中加载该
css
文件,则它将仅适用于该页面。否则,它将应用于所有页面。 简而言之,它与在
Application.scss
中编写相同

css类的应用顺序与您在声明它们时定义的顺序相同。所以要应用
welcome.scss
您需要在
bootstrap css
文件之后声明它

此外,您还可以使用
!重要信息

这是在
部分中定义特定于页面的css文件的方法:

application.html.erb
中,您可以定义

<% if content_for?(:head) %>
    <%= yield(:head) %>
<% else %>
    # default css file
<% end %>

希望有帮助

如果要自定义特定控制器或操作的样式,可以遵循以下步骤:

  • 将控制器名称/操作名称(如果需要)添加到布局文件中,application.html.erb在我的示例中:
  • 
    
    据我所知,css页面只在您位于该页面时加载

    加载的CSS完全取决于
    布局中的:

    #app/views/layouts/application.html.erb
    <%= stylesheet_link_tag :application %>
    
    。。。您需要确保知道要加载哪些文件。具体来说,您关于正在加载特定于页面的CSS的断言是错误的;您可以硬编码加载,或者将代码放入单个文件(例如应用程序):


    我用进口的“自举链轮”试过了;导入“引导”;输入“欢迎”;-我也试过了!重要的是谢谢-这消除了我对它如何工作的看法。
    #app/views/layouts/application.html.erb
    <%= stylesheet_link_tag :application %>
    
    #app/assets/stylesheets/application.css
    /*
     *= require bootstrap_and_overrides
    */
    
    #app/views/layouts/application.html.erb
    <%= stylesheet_link_tag :application, controller_name #=> loads controller CSS page each time you load a new controller %>
    
    #app/views/layouts/application.html.erb
    <body class="welcome if action_name == 'welcome'">
    
    #app/assets/stylesheets/application.css
    body.welcome {background:#000000;}