sass:import+;扩展到类内

sass:import+;扩展到类内,sass,Sass,我有导入2个不同sass文件的代码,每个文件都有一个同名的类。例如 a.sass: %test background-color: aqua %test background-color: blue .aqua @import "a" @extend %test .blue @import "b" @extend %test b.sass: %test background-color: aqua %test background-color: blue

我有导入2个不同sass文件的代码,每个文件都有一个同名的类。例如

a.sass

%test
  background-color: aqua
%test
  background-color: blue
.aqua
  @import "a"
  @extend %test

.blue
  @import "b"
  @extend %test
b.sass

%test
  background-color: aqua
%test
  background-color: blue
.aqua
  @import "a"
  @extend %test

.blue
  @import "b"
  @extend %test
c.sass

%test
  background-color: aqua
%test
  background-color: blue
.aqua
  @import "a"
  @extend %test

.blue
  @import "b"
  @extend %test
现在编译它::
sass c.sass
我得到:

.aqua .aqua, .aqua .blue {
  background-color: aqua; }

.blue .aqua, .blue .blue {
  background-color: blue; }
如何使其正常工作,我想:

.aqua {
  background-color: aqua; }

.blue {
  background-color: blue; }

您需要将导入移到类定义之外。否则,导入的规则也将附加到当前选择器

@import "a"
.aqua
  @extend %test

@import "b"
.blue
  @extend %test

您需要将导入移到类定义之外。否则,导入的规则也将附加到当前选择器

@import "a"
.aqua
  @extend %test

@import "b"
.blue
  @extend %test

这不会将导入暴露到全局作用域吗?@deathangel908是的,但否则它会像选择器在扩展自身一样,复制选择器它生成的
.aqua、.blue{background color:aqua;}
+
.aqua、.blue{background color:blue;}
。有没有办法把它编译成我在问题中写到的结果?@deatangel908问题是,如果两者都在全球范围内公开,它们将相互扩展。为什么不更改扩展名?第三方LIB;(这不是将导入公开到全局范围吗?@deathangel908是的,但否则它会像选择器在扩展自身一样,复制选择器它生成的
.aqua、.blue{background color:aqua;}
+
.aqua、.blue{background color:blue;})
。有没有办法将其编译成我在问题中所写的结果?@deatangel908如果这两个问题都在全球范围内公开,它们将相互扩展。为什么不更改扩展名称?第三方libs(