-1

我想在SASS中做类似的事情:

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

$currentColor:null;

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; }

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

所以,我不知道是SASS没有处理它还是我犯了一个大错误。

谢谢。

4

2 回答 2

1

删除该行$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; }
于 2013-09-27T19:02:39.670 回答
1

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

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

于 2013-09-23T15:19:03.280 回答