【发布时间】:2013-09-27 00:44:24
【问题描述】:
刚从LESS切换,发现SASS中的所有变量都是全局变量。因此,要为特定块定义特殊变量,我需要编写类似$words-that-describe-particular-block-padding: 10px; 的内容。
在所有评论中,由于 SASS 功能丰富,作者认为 SASS 比 LESS 更先进,但实际上缺少命名空间这样简单的东西会扼杀所有使用它的经验。
为什么做出这个设计决定?
我错了,因为我失踪了,全局变量更好吗?
更新:
萨斯:
$var: 1px;
#id1 {
$var: 2px;
width: $var;
}
#id2 {
width: $var;
}
少:
@var: 1px;
#id1 {
@var: 2px;
width: @var;
}
#id2 {
width: @var;
}
使用此在线编译器尝试示例:
【问题讨论】:
-
不知道你为什么这么认为...Sass variables "变量仅在定义它们的嵌套选择器级别内可用。如果它们是在任何嵌套选择器之外定义的,它们'随处可见。”
-
@steveax 他们不能被覆盖 - 请检查帖子中的更新
-
此行为将在 4.0 中更改,请参阅 github.com/sass/sass/issues/136。在此之前,请使用命名约定(大小写、下划线等)来区分全局变量和局部变量。