刚刚从 LESS 切换,发现在 SASS 中所有变量都是全局变量。因此,要为特定块定义特殊变量,我需要编写类似 $words-that-describe-particular-block-padding: 10px;
的东西。
在所有评论中,作者将 SASS 渲染为比 LESS 更先进,因为它的功能丰富,但实际上缺乏命名空间这样简单的事情会扼杀所有使用它的经验。
为什么要做出这样的设计决定?
我错了吗,仅全局变量因我丢失的原因而更好?
更新:
屁股:
$var: 1px;
#id1 {
$var: 2px;
width: $var;
}
#id2 {
width: $var;
}
少:
@var: 1px;
#id1 {
@var: 2px;
width: @var;
}
#id2 {
width: @var;
}
使用此在线编译器尝试以下示例:
- http://sass-lang.com/try.html
- http://less2css.org/
这并不完全正确。如果运行以下代码:
.header {
$color: #000;
background: $color;
}
.footer {
background: $color;
}
你会得到
Sass Error: Undefined variable: "$color".
因此,颜色变量根本不是全局的。它仅在其定义的上下文中可用。
但是,SASS或LESS有很多限制。如果您对他们提供的东西不满意,我建议您检查一下。