css - Ruby on Rails - 覆盖 application.css

标签 css ruby-on-rails ruby-on-rails-4 haml

我正在尝试用 header 中包含的其他 CSS 覆盖我的 application.css。我想通过这种方式自定义我的 application.css。

我的标题

= stylesheet_link_tag 'application', media: 'all'
= stylesheet_link_tag 'customized_css', media: 'all'

实际

enter image description here

application.css.scss 覆盖了我的 tour.css.scss 甚至它在任何其他 css 之前加载

编辑

覆盖样式的文件顺序是正确的,但应用程序的选择器特异性胜过游览,这就是原因。解决方案 - 改用 ID。

Documentation

Specificity calculator

感谢@tonyedwardspz寻求解决方案

最佳答案

您遇到的问题是 CSS 特异性。

您已经以正确的顺序声明了 css 文件。但是,tour.css.scss 中的规则具有较低级别的 css 特异性,因此无法覆盖 application.css.scss 中的声明。

要解决这个问题,您可以做以下三件事之一:

  • 重写规则以获得更高的特异性。将类应用于元素并将其与 tour.css.scss
  • 中的现有规则相结合
  • 重写规则以匹配 application.css.scss 中声明的选择器。这将使层叠按您预期的方式工作,但可能会影响页面上的其他元素。
  • 将类应用到特定于每个页面的 body 标记。然后,您可以将您的选择仅定位到一个页面。

您可以阅读有关 css 特异性的更多信息 here .

关于css - Ruby on Rails - 覆盖 application.css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30954508/

相关文章:

javascript - 如何在某些 Javascript 部分更改 body 元素的背景颜色?

ruby-on-rails - Google Docs inline pdf 显示为黑白

ruby-on-rails - "validate"和 "validates"之间有什么区别?

sql - 将 SQL 用于 rails 参数/值

ruby-on-rails - Activeadmin 渲染 'new' 在尝试覆盖创建 Controller 方法时给出无法找到没有 ID 的用户

jquery - mediaelement.js 改变皮肤

css - 如何在单个字体文件中定义多种字体的字体?

ruby-on-rails - 如何在无表 Rails 4 模型中添加枚举支持

ruby-on-rails - ActiveAdmin + CanCanCan 错误与 : protected method `authorize!' called for <Every ActiveAdmin Controller>

html - CSS 对齐文本和输入字段