我正在将样式表从 LESS 转换为 SCSS ,我对我在变量范围内看到的东西感到困惑。转载了一个简单的例子:
$my-color: #000;
#logo {
$my-color: #555;
color: $my-color;
}
a {
color: $my-color;
}
转换为以下CSS:
#logo {
color: #555555;
}
a {
color: #555555;
}
LESS 中的等效构造会导致a color
值为#000
,因为#logo
范围内的变量声明将覆盖更一般的但是仅在该范围内。变量范围不像 SCSS 那样工作吗?有没有办法实现同样的目标?
答案 0 :(得分:10)
阅读Sass variable default scope的答案,似乎变量在 SCSS 与 LESS 中的工作方式不同。
在这种情况下,$my-color
中#logo
的定义会更改全局变量的值,而在 LESS 中,它将被视为该全局变量的块本地覆盖
我想我必须以不同的方式构建结构才能获得相同的结果。