我对此深感困惑。我的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/

10-11 03:01