假设我想为变量定义一个全局值,然后为特定的选择器重写它。根据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;