css - Ruby on Rails Assets 管道似乎在添加不存在的样式

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

我完全被这个难住了。我的 SCSS 文件显示:

.segmented-control {
  li .field_with_errors label {
      border-color: #db5757;
  }
}

但是当我加载页面并检查 css 时,它显示如下:

/* line 1382, /general.scss */
.segmented-control li .field_with_errors label,
.form-item-segmented-control li .field_with_errors label {
  border-color: #db5757;
}

行号 1382 正好指向我显示的第一个代码片段。然而在编译版本中,它包含一个额外的选择器,其中包含 .form-item-segmented-control

我确实在 CSS 的其他地方使用了 .form-item-segmented-control,但这里没有。而且它绝对嵌套或类似的东西。

我完全被难住了。关于 Rails 可能做什么的任何想法?甚至关于如何进一步调试的想法?

最佳答案

好的,经过更多的调试,我相信我明白了。看起来这是由于我之前在文件中使用的 @extend 造成的。我以前没有意识到 @extend 的所有效果。

看起来如果我做这样的事情:

.form-item-segmented-control {
    @extend .segmented-control;
}

ever 在文件中,然后它将 .form-item-segmented-control 选择器添加到 所有 出现的 .分段控制。不过,需要注意的一个重要细微差别是,它不会对其他 SCSS 部分中出现的 .segmented-control 执行相同的操作; @extend 只影响它所在的​​文件。

关于css - Ruby on Rails Assets 管道似乎在添加不存在的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32824967/

相关文章:

mysql - 如何使用 Rails 5 迁移在 MySQL 中添加 JSON 列

ruby-on-rails - Rails 上的 ruby ActiveRecord : pluralization

jquery - 如何在拖动时删除右侧或底部的CSS

ruby-on-rails - rails 3 : How Lazy Loading really works on production

mysql - 为什么我无法安装mysql2 gem?

ruby - 我如何使用 ruby​​ 从 Instagram API 获取 JSON

ruby - Rails 中的事件机错误

html - ul a li 中的文本垂直居中

javascript - IE 不在 div 上显示背景颜色

javascript - 使用 JQuery 在 div 中查找上一张和下一张图片