【发布时间】:2014-07-07 16:03:36
【问题描述】:
我以为下面的SCSS在编译的时候会报错:
.main {
%abstract {
color: red;
}
.main-element {
@extend %abstract;
}
}
.outside {
@extend %abstract; // <--
}
虽然它实际上编译为:
.main .main-element, .main .outside {
color: red;
}
有没有办法让这些占位符在范围之外不可用,即只对.main的孩子可用?
见http://sass-lang.com/documentation/file.SASS_REFERENCE.html#placeholders
【问题讨论】:
-
您刚刚在
.main中编写了一个仅适用于.main-element和.outside的占位符。也许我只是不明白。但是你能解释一下你想做什么吗? jsfiddle.net/NicoO/xBkw9 -
@NicoO 我希望
%abstract占位符仅可用于.main的子代。也就是说,由于.outside不是.main的孩子(而是兄弟),我希望编译器失败。 -
我认为你不能让编译器在这一点上抛出错误。也许有一个解决方案至少可以使用`@warn "Not to be used outside..."`,但我不确定如何实现它,即使它也不是解决问题的可靠方法。
标签: css scope sass extend placeholder