我遇到的一个常见问题@extend
是尝试用另一个@extend
.
这是一个例子:
// class selectors to be @extended
// these could also use % to be silent/placeholder selectors
.size-2xl {
@include rem(font-size, 40px);
}
.size-3xl {
@include rem(font-size, 60px);
}
// mapping the class selector properties onto some structural classes
.heading1 {
@extend .size-3xl;
}
.heading1-small {
@extend .heading1;
@extend .size-2xl;
}
当 SCSS 被编译后,.heading1
会.heading1-small
得到正确的属性,但.heading1-small
会显得太大。
@extend
当-able 类映射到几个不同的选择器时,这似乎会发生。
当 SCSS 编译为 CSS 时,各种选择器组合成一个或多个具有多个选择器的规则集。
有时 SCSS 似乎是“乱序”编译的,因此编译.heading1
后的多重选择器在多重选择器之后输出.heading1-small
。
它甚至可能是@extend
导致这种行为的嵌套。
避免这种情况的最佳方法是什么?我能想到的一些事情是:
- 使用
@include('size-2xl')
(少干) - 不要
@extend
规则包含@extend
(限制@extend 的使用)
谢谢。