为什么SASS没有局部变量?

时间:2013-09-21 19:50:01

标签: css styles sass less

刚刚从LESS切换,发现在SASS全局变量中。因此,要为特定块定义特殊变量,我需要编写类似$words-that-describe-particular-block-padding: 10px;的内容。

在所有评论中,作者都​​认为SASS比LESS更先进,因为它的功能丰富,但实际上缺少像命名空间这样简单的东西会杀死所有经验。

为什么做出设计决定?
我错了,全球唯一的变量因为我失踪而更好吗?

UPD:
SASS:

$var: 1px;
#id1 {
$var: 2px;
width: $var;
}
#id2 {
width: $var;
}

LESS:

@var: 1px;
#id1 {
@var: 2px;
width: @var;
}
#id2 {
width: @var;
}

尝试使用此在线编译器的示例:

1 个答案:

答案 0 :(得分:14)

这不完全正确。如果您运行以下代码:

.header {
   $color: #000;
   background: $color;
}
.footer {
   background: $color;
}

你会得到

Sass Error: Undefined variable: "$color".

因此,颜色变量根本不是全局变量。它仅在其定义的上下文中可用。

但是,SASS或LESS有很多限制。如果您对他们提供的内容不满意,我建议您查看this