SASS 和 SCSS 之间有哪些区别?

阅读时长 5 分钟读完

前端开发中,使用 Sass 或者 SCSS 来编写 CSS 是非常常见的选择,它们可以让我们更高效地组织和管理我们的样式表。虽然 Sass 和 SCSS 看起来很相似,但它们之间还是存在一些区别的。

Sass 和 SCSS 的发展历程

Sass 是第一代受欢迎的 CSS 预处理器,它使用缩进格式,没有花括号和分号。Sass 根本就没有任何符号,所有的缩进都是用来表达层级的。例如:

SCSS 是 Sass 的第二代语法,也是目前最为流行的 CSS 预处理器,SCSS 语法的主要特点是使用花括号和分号,就像普通的CSS一样。SCSS 语法的设计是为了让开发者可以在不太熟悉 Sass 的情况下快速开始使用它。

语法差异

最大的不同就是语法的差异。Sass 是用缩进来表示代码块和层级关系的,而 SCSS 继承了 CSS 的语法,所以使用花括号把代码块括起来。

Sass:

SCSS:

-- -------------------- ---- -------
--- -
  ---- -
    ------ -----
  -

  ------ -
    ------ -----
  -
-

文件后缀名

Sass 和 SCSS 的文件后缀名也不同,Sass 使用 .sass 后缀,而 SCSS 使用 .scss 后缀。

兼容性

虽然 Sass 比 SCSS 早出现,但 SCSS 的普及更广泛,所以 SCSS 的兼容性更好。

嵌套

Sass 和 SCSS 都可以使用嵌套的方式来组织代码。但使用嵌套的话,只是让你的 CSS 更加清晰有条理,并不会像普通的 CSS 一样产生过多的选择器,因为 Sass 和 SCSS 会把嵌套的选择器合并。

例如:

编译结果:

-- -------------------- ---- -------
---------- -
  ------ -----
  ------- -----
-

---------- ---- -
  ------ ----
  ------- ----
-

变量

Sass 和 SCSS 都支持使用变量来保存值,这样可以让 code 更加干净可读。

Sass:

SCSS:

继承

使用继承可以减少代码重复性。

Sass:

-- -------------------- ---- -------
-------
  ------ ----
  ----------------- ----

---------------
  ------- -------
  ------- --- ----- ----

-----------------
  ------- -------
  ------- --- ------ ----

SCSS:

-- -------------------- ---- -------
------- -
  ------ -----
  ----------------- -----
-

--------------- -
  ------- --------
  ------- --- ----- -----
-

----------------- -
  ------- --------
  ------- --- ------ -----
-

运算符

Sass 和 SCSS 都支持使用数学运算符。

Sass:

SCSS:

指令

Sass 和 SCSS 都支持使用指令来控制代码输出。

Sass:

SCSS:

-- -------------------- ---- -------
------ ------------- -
----------- -----
-------- --
------- --
-

---- -
  -------- --------------
-

总结

虽然 Sass 和 SCSS 在语法和文件后缀上有区别,但是两个语法的大多数功能都是一样的,如变量、继承、嵌套以及运算符等。对于新手来说,建议使用 SCSS,因为它更像是普通的 CSS 语法,而且也更加普及和适应。而对于 Sass 的支持者来说,还是继续使用 Sass 吧,毕竟 Sass 的创新对于后来的 SCSS 来说是不可或缺的。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/645c3fc9968c7c53b0e897e9

纠错
反馈