为什么 SASS 没有局部变量



刚刚从 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有很多限制。如果您对他们提供的东西不满意,我建议您检查一下。

相关内容

  • 没有找到相关文章

最新更新