在Rails中设置体型元素

时间:2014-07-21 15:30:34

标签: html css ruby-on-rails asset-pipeline

我目前正在开发一个简单的Rails博客应用程序。我正在使用两种不同的布局,一种用于我的文章页面(application.html.erb),另一种用于我的静态页面(welcome.html.erb),例如家庭等。

欢迎布局需要以下样式:

body {
  padding-top: 50px;
  padding-bottom: 20px;
}

这些特殊属性使用文章布局搞乱了其他页面。

1.是否有针对这种情况的解决方法,在这种情况下,对于不同布局/页面中存在的相同类型的元素,您需要不同的样式?

2.具有控制器特定样式表的重点是什么,例如welcome.css.scss和article.css.scss,如果它们都编译成一个单独的application.css文件?

我正在努力更好地了解Rails资产管道。我使用rails 4.1.1和ruby 2.1.1p76

非常感谢

2 个答案:

答案 0 :(得分:1)

如果你看看你的布局,你会得到一个<%= stylesheet_link_tag "application", media: "all" %> ,它基本上告诉rails从application.css加载样式,现在如果你看看你的application.css,你会{ {1}} 加载app / assets / stylesheets中存在的所有样式表,因此您的样式将应用于两种布局。

<强>修正

由于您使用的是单独的布局,因此最简单的解决方案将使用不同的类或ID(因为它在页面中是唯一的,*= require_tree .指出) in您的布局

@MrYoshiji

答案 1 :(得分:0)

  1. Rails layouts per action?

  2. 因为作为开发人员,您更容易了解这些样式所指的内容。你经常做这样的事情:

  3. <强> one.html.erb

    <div id="one">
      <!-- code -->
    </div>
    

    <强> one.css.scss

    #one {
      // styling
    }
    

    这样one.css.scss中的样式才会应用于正确的html页面。