SASS混合中的变量范围

SASS混合中的变量范围,sass,mixins,Sass,Mixins,我正试着把我的大脑围绕在这个问题上,希望这里有人能启发我。我以以下代码为例: @mixin stuffs() { color: $color; } $color: #000; .single { $color: white; @include stuffs(); } 我希望.single范围内的$color会覆盖全局$color值,但它不会。有人能解释一下原因吗?我在这里遗漏了什么?好的-让我们看看是否可以使用您给出的示例来分解这一点 @mixin stuffs() { c

我正试着把我的大脑围绕在这个问题上,希望这里有人能启发我。我以以下代码为例:

@mixin stuffs() {
  color: $color;
}

$color: #000;

.single {
  $color: white;
  @include stuffs();
}

我希望.single范围内的$color会覆盖全局$color值,但它不会。有人能解释一下原因吗?我在这里遗漏了什么?

好的-让我们看看是否可以使用您给出的示例来分解这一点

@mixin stuffs() {
  color: $color;
}

$color: #000;

.single {
  $color: white;
  @include stuffs();
}
您希望$color的局部变量版本,即白色将显示在.single选择器中,而不是黑色

但是您需要将.single的本地作用域与mixin stuff的本地作用域分开。它们不是一回事。您仍然需要在单个选择器中使用$color的局部变量版本,即白色,如下所示:

@mixin stuffs() {
    color:$color;
}

$color:#000;

main
{
    $color:white;
    @include stuffs();
    color:$color;
}
请让我知道,如果我错过了你的东西,并检查出更多关于范围的信息