我对此深感困惑。我的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;
}
无论文件中有没有,它都会向所有出现的
.form-item-segmented-control
添加.segmented-control
选择器。但是,需要注意的一个重要细微差别是,对于其他SCSS部分中的.segmented-control
出现,它不会做同样的事情; @extend
仅影响使用它的文件。关于css - Ruby on Rails Assets 管道似乎正在添加不存在的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32824967/