假设我想为变量定义一个全局值,然后为特定的选择器重写它。根据SASS documentation这应该是可能的。
变量仅在定义它们的嵌套选择器级别中可用。如果它们是在任何嵌套选择器之外定义的,那么它们在任何地方都可用。
然后,逻辑会声明“green”和“red”作为$text-color的值只能在它们各自的嵌套选择器中使用,并且当在其他任何地方(如$text-color中)调用时,.foo的值将为“blue”。

$text-color: blue;

.green {
    $text-color: green;
    color: $text-color;
}

.red {
    $text-color: red;
    color: $text-color;
}

.foo {
    color: $text-color;
}

但事实并非如此,上述sass编译为:
.green {
    color: green;
}

.red {
    color: red;
}

.foo {
    color: red;
}

任何理解这一点的帮助都是有帮助的。

最佳答案

这是因为,一旦将变量指定为全局变量,则对该变量的所有进一步指定也将全局完成。如果你想在那之后使它成为本地的,你可以做$local-text-color: $text-color;然后color: $local-text-color;

09-11 18:44
查看更多