大家 — 我正在查看最近关于 960 Grid System 的演示文稿,刷新 OKC – 2011 年 4 月 19 日,在倒数第二张幻灯片 (101/102) 上,该人建议“如果您要使用 Sass,请使用 Sass,而不是 SCSS 。” 鉴于 SCSS 是新的主要语法,为什么更喜欢 Sass 而不是 SCSS?是否只是为了简洁而不是与 CSS 相似,还是有真正的理由使用 Sass,而不是 SCSS?
4 回答
我想不出一个很好的理由:)
我看了整套幻灯片,我认为演示者(我认为还是与 SASS 项目有联系?)的心态是使用你所知道的来“完成”
据说Sass更短更简洁,演讲者可能对 Sass 了如指掌,但从阅读和编写 CSS 10 多年的个人经验来看,我发现SCSS更直观。我不必学习 Sass 缩进规则,并且 SCSS 和 CSS 中的括号为嵌套提供了视觉缩进线索 - 这与大多数其他语言使用的非常相似,因此任何具有编程/编码背景的人都会熟悉关闭巢穴??
.. 更重要的是,每个有效的 CSS 都已经是有效的 SCSS,因此无需转换即可开始使用它 - 例如,我能够获取我的 Drupal 工作表(全部 29 个!),更改它们的扩展名并在很短的时间内重新编译/压缩它们..从那时起,我已经能够一次取一小块并“Sassify”它,使用嵌套等。我仍然喜欢看到括号和分号,没关系,你使用一次就可以了无论如何编译!
恕我直言,Sass 本身对于大型项目(现有的项目,即没有从头开始构建/验证的项目)来说是一个太高的门槛,因为它可以使用 SCSS 进行模块化
因此,为了遵循原作者(幻灯片)的想法,而不是争论优缺点,我将继续使用我知道的 TYVM :)
我相信括号中的.scss
语法目前是默认的,只是因为它对于从 LESS 和 vanilla CSS 切换到 SASS 的新手来说更熟悉。
缩进.sass
语法是 SASS 中的第一个语法,与 HAML 相同(并与HAML建立了终极团队) 。新的括号.scss
语法类似于 SASS 的竞争对手 LESS,SASS 和 LESS 都可以通过重命名从 CSS 转换。
缩进.sass
语法只有一个缺点:它不允许将函数/mixin 参数拆分为多行。这会使代码更难阅读(示例)。
在实践中,这个问题很少见,可能表明代码设计不佳,需要重构。
缩进.sass
语法唯一但决定性的优点是它更清晰,更容易理解,同时同样具有表达力和强大功能。
我创建了一个动画供您考虑差异:
另外,当您的代码由于缺少分号而无法工作/编译时(并且可能解释器/编译器产生误导性错误消息),您是否不讨厌它?
基本上,缩进的.sass
语法只是消除了视觉噪音的膨胀。
当然,这需要一些时间来适应。起初,对于任何有 CSS 或 LESS 经验的人来说,它看起来很陌生。但是一旦你习惯了一点,你会发现自己对 CSS/LESS/SCSS 和 JavaScript 的括号语法感到厌恶,而更喜欢 SASS、HAML、CoffeeScript 和 Python/Ruby 的简洁语法。
优点: 更干净。更少的视觉噪音。更优雅。
缺点: 最大的缺点:不能使用换行符。这是我唯一不喜欢 SASS 的地方。请参见下面的示例。其余的:对于那些与明显困难的缩进概念作斗争的人来说,进入门槛更高。
在 SASS 中,您被迫遵守规定。所以如果你有
@function -create-gradient-from-color($bgcolor:#000,$depth:6%)
...code...
那么你不能这样做,我发现它更干净
@function -create-gradient-from-color(
$bgcolor: #000,
$depth: 6%
)
...code...
由于换行符,这将引发错误。
但是你可以在 SCSS 中做到这一点,因为它不关心换行
@function -create-gradient-from-color(
$bgcolor: #000,
$depth: 6%
) {
...code...
}
所以我发现自己在可选参数字符串中保持简洁,以防止这种情况。
我发现 SASS 的打字速度要快得多。
SASS 和 SCSS 都是 CSS 的一个巨大的附加组件 - 如此不同以至于我不想将它们与标准 CSS 混淆。
学习 SASS 并不难——去掉括号,使用制表符来决定嵌套。