Css SASS中变量的开关值

Css SASS中变量的开关值,css,sass,Css,Sass,我想在SASS中这样做: 我没有错,它编译成功了。但是当我检查我的页面时,$currentColor的值是$RED,即使我不在body.page contribution 所以,我不知道SASS是否处理不了,或者我是否犯了一个大错误 谢谢。您正在声明一个具有全局作用域的Sass变量,因此每一行都在修改全局变量,就像在JavaScript中一样。 您可以使用@debug$currentColor在两行之间查看变量状态 您可能应该使用mixin来防止作用域问题,或者每次声明另一个具有本地作用域的变量

我想在SASS中这样做:

我没有错,它编译成功了。但是当我检查我的页面时,$currentColor的值是$RED,即使我不在body.page contribution

所以,我不知道SASS是否处理不了,或者我是否犯了一个大错误


谢谢。

您正在声明一个具有全局作用域的Sass变量,因此每一行都在修改全局变量,就像在JavaScript中一样。 您可以使用
@debug$currentColor在两行之间查看变量状态


您可能应该使用mixin来防止作用域问题,或者每次声明另一个具有本地作用域的变量(尝试只删除
$currentColor:null;

删除行
$currentColor:null-无需在SASS中实例化超出其所需范围的变量

$GREEN: #57da99;
$HEADER_PURPLE: #8585ff;
$BLUEISH: #4478ff;
$RED: #ff475d;
$RED2: #ff445e;

body.page-about       { $currentColor: $BLUEISH; }
body.page-browse      { $currentColor: $GREEN; }
body.page-signup      { $currentColor: $HEADER_PURPLE; }
body.page-login       { $currentColor: $HEADER_PURPLE; }
body.page-contribute  { $currentColor: $RED; }

好的,记录在案。这是不可能的,因为在每一行中,都会在不同的作用域中创建一个新的$currentColor:/
$GREEN: #57da99;
$HEADER_PURPLE: #8585ff;
$BLUEISH: #4478ff;
$RED: #ff475d;
$RED2: #ff445e;

body.page-about       { $currentColor: $BLUEISH; }
body.page-browse      { $currentColor: $GREEN; }
body.page-signup      { $currentColor: $HEADER_PURPLE; }
body.page-login       { $currentColor: $HEADER_PURPLE; }
body.page-contribute  { $currentColor: $RED; }