我正在尝试用 header 中包含的其他 CSS 覆盖我的 application.css。我想通过这种方式自定义我的 application.css。
我的标题
= stylesheet_link_tag 'application', media: 'all'
= stylesheet_link_tag 'customized_css', media: 'all'
实际
application.css.scss 覆盖了我的 tour.css.scss 甚至它在任何其他 css 之前加载
编辑
覆盖样式的文件顺序是正确的,但应用程序的选择器特异性胜过游览,这就是原因。解决方案 - 改用 ID。
感谢@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/