在我安装Sass ruby gem之后,系统中添加了三个新命令:sass
,scss
和sass-convert
。所以,我的问题是sass
和scss
命令之间的区别是,它们是否共享相同的功能?因为它们都可以将.sass文件或.scss文件转换为.css文件:
$ sass style.sass style.css
$ sass style.scss style.css
$ scss style.sass style.css
$ scss style.scss style.css
所有这四种指令都可以正常运行。
PS:我不是在问SCSS语法和Sass语法之间的区别。
答案 0 :(得分:0)
在命令中使用--help
标志会给你答案:
SASS变频:
$ sass-convert --help
Usage: sass-convert [options] [INPUT] [OUTPUT]
Description:
Converts between CSS, Sass, and SCSS files.
E.g. converts from SCSS to Sass,
or converts from CSS to SCSS (adding appropriate nesting).
SCSS:
$ scss --help
Usage: scss [options] [INPUT] [OUTPUT]
Description:
Converts SCSS or Sass files to CSS.
SASS:
$ sass --help
Usage: sass [options] [INPUT] [OUTPUT]
Description:
Converts SCSS or Sass files to CSS.
答案 1 :(得分:0)
命令scss
相当于sass --scss
,其中命令sass
等同于scss --sass
。这两个命令(例如两个选项)对syntax selection使用不同的默认语法。
首先,scss
和sass
都会根据您的文件扩展名解析您的语法。 (scss
如果您的文件扩展名为sass,则使用sass语法解析器,反之亦然。)在这种情况下,它们的行为相同,这就是您获得正确结果的原因。
但是,如果您的文件没有文件扩展名。该命令将使用默认语法解析语法。例如,以下代码将为您提供正确的结果,因为它使用sass语法分析器。
$ scss style.sass style.css
以下代码可能会给您一个解析错误,因为它使用scss语法解析器。
$ scss style_sass.txt style.css
答案 2 :(得分:-1)
Sass是一款具有语法改进功能的CSS预处理器。高级语法中的样式表由程序处理,并转换为常规CSS样式表。但是,它们并没有扩展CSS标准本身。
这样做的主要原因是增加了CSS痛苦缺乏的功能(如变量)。
重新考虑SCSS和Sass之间的区别,Sass home page上的文字应该回答这个问题:
Sass is an extension of CSS3, adding nested rules, variables, mixins, selector inheritance, and more. It’s translated to well-formatted, standard CSS using the command line tool or a web-framework plugin.
Sass has two syntaxes. The new main syntax (as of Sass 3) is known as “SCSS” (for “Sassy CSS”), and is a superset of CSS3’s syntax. This means that every valid CSS3 stylesheet is valid SCSS as well. SCSS files use the extension .scss.
The second, older syntax is known as the indented syntax (or just “Sass”). Inspired by Haml’s terseness, it’s intended for people who prefer conciseness over similarity to CSS. Instead of brackets and semicolons, it uses the indentation of lines to specify blocks. Although no longer the primary syntax, the indented syntax will continue to be supported. Files in the indented syntax use the extension .sass.
然而,所有这些只适用于最终创建CSS的Sass预编译器。它不是CSS标准本身的扩展。