我完全被这个难住了。我的 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/