为什么使用Sass(不是SCSS)?

问题描述:

everyone —我正在看960 Grid System,Refresh OKC – April 19th 2011以及倒数第二张幻灯片(101/102)上的最近演示文稿,这个家伙建议“如果您要使用Sass,请使用Sass,而不是SCSS”。鉴于SCSS是新的主要语法,为什么Sass更喜欢SCSS?它仅仅是一种优于CSS的简洁性,还是真的有使用Sass而不是SCSS的理由?为什么使用Sass(不是SCSS)?

我想不出一个很好的理由:)

我看着整个组幻灯片,我觉得主持人(谁也是一个连接到SASS项目,我觉得呢?)是的使用你知道的“得到'呃完成”的思维模式

Sass被认为更短,更简洁,说话人可能知道Sass从里面出来,但从阅读和写入CSS的个人经验谈起10年我发现SCSS更直观。我不必学习Sass缩进规则,而SCSS和CSS中的括号为嵌套提供了视觉缩进线索 - 这非常类似于大多数其他语言使用的,所以任何来自编程/编码背景的人都会熟悉关闭巢穴?

更重要的是,每个有效的CSS已经是一个有效的SCSS,所以不需要转换来开始使用它 - 例如,我能够拿走我的Drupal表单(全部29个表单!),改变它们的扩展名并在很短的时间内重新编译/压缩它们。从那以后,我一次可以占用一小块,并且“Sassify”它,使用嵌套等,我仍然喜欢看到括号和分号,它不重要,你使用一旦它全部编译!

恕我直言,萨斯本身就是过高的门槛对大型项目(现有的,即一个没有内置/从零开始sassified),其中因为它可以与SCSS

被模块化的所以要遵循原作者的(幻灯片)思考而不是辩论亲和我会继续使用我知道的TYVM :)

+1

所有优点 - 但是,有一个工具:css2sass它将任何样式表转换为有效的SASS格式。它的工作原理与将.css重命名为.scss一样 - 即可以工作,但需要进行优化才能充分利用SASS/SCSS。 – Beejamin 2011-09-13 00:22:46

优点: 它更干净。视觉噪音较少。更优雅。

缺点: 大问题:不能使用换行符。这是我不喜欢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并不难 - 丢掉括号,并使用制表符来决定嵌套。

我认为括号中的.scss语法目前仅仅是默认的,因为它对从LESS和vanilla CSS切换到SASS的新手更加熟悉。

缩进的.sass语法是SASS中的第一个,与HAML完全相同(并且成为最终团队)。新括号中的.scss语法类似于SASS的竞争对手LESS,SASS和LESS都可以通过重命名来从CSS转换。

缩进的.sass语法只有一个缺点:它不允许将函数/混入参数分成多行。这可能会使代码难以阅读(example)。

实际上,这个问题很少见,可能表明代码设计不好,需要重构。

缩进.sass语法的唯一但决定性的优点是,它更清晰,更易于理解,同时具有同样的表现力和强大功能。

我已经创建了一个动画,你要考虑的区别:

enter image description here

而且,你不讨厌每次当你的代码未能奏效/编译时就因缺少分号(和也许解释器/编译器产生误导性的错误信息)?

基本上,缩进的.sass语法只是消除了大量的视觉噪音。

当然,它需要一些时间来适应它。起初,对于任何有CSS或LESS经验的人来说,这似乎是陌生的。但是一旦你习惯了一些,你会发现自己对CSS/LESS/SCSS和JavaScript的括号内语法感到厌恶,并且更喜欢SASS,HAML,CoffeeScript和Python/Ruby的干净语法。

+0

谢谢你的动画!它真的帮助我,因为搜索sass-syntax让我在这里。所有其他结果用户scss-syntax和我找不到if的文档。他们使用+而不是'@include'并坚持使用'@if',不一致的imho! – 2015-05-26 12:19:20