SASS和SCSS有什么区别?


SASS是CSS的语言扩展,可以添加新功能,使编写样式表更容易。同时,Compass是一个基于SASS构建的框架,它提供了更多功能并简化了样式表的开发。

这意味着每个有效的CSS3样式表也是有效的SCSS。我们用于scss文件的扩展名是.scss。SCSS使用行的缩进而不是括号或分号来标识代码块。虽然不再是主要语法,但缩进语法将继续得到支持。使用缩进语法的文件使用扩展名.sass。

SASS和SCSS的功能

SASS

SASS是一个辅助工具,使编写CSS更容易和更高效。它提供了普通CSS中没有的更多功能。

一些主要功能如下:

  • 变量 我们可以复用存储的数据,这使得样式表更容易后期维护,我们还可以复用颜色和字体。

  • 嵌套 嵌套允许我们根据相关的选择器组织样式,这使我们更容易阅读和维护代码。

  • Mixin Mixin是SASS的关键特性。我们用它来组合许多CSS声明,使之更简洁,节省时间和精力,并在项目中重复使用它们。

  • 继承 SASS的一个强大特性是继承。我们可以定义一组可以被其他选择器继承的样式,从而减少我们要编写的代码量。

  • 控制指令 在SASS中,控制指令和表达式可以在某些条件下包含样式,例如@if、@else和@for,允许我们在样式表中创建逻辑。

  • @if, @else 这些指令与javascript中的if和else条件语句相同。它用于执行表达式,而else用于检查if语句之前执行的表达式。

  • @for 它用于执行许多分组的语句。

SCSS

另一方面,SCSS也是CSS中一个强大的框架。

使用循环、变量和数学运算,SCSS帮助我们更简洁地编写CSS代码,从而使CSS编写更强大。

SCSS的一些主要功能如下:

  • SCSS包含CSS的所有功能以及CSS中没有的更多功能,这使得SCSS更容易被开发者选择。

  • SCSS鼓励嵌套规则。

  • SCSS代码量少,因此我们可以快速编写。

  • SCSS提供嵌套语法和函数,例如数学运算、颜色等等。

  • 它更强大、更优雅,因为它是的CSS的扩展,使开发人员的工作更轻松快捷。

  • 它可以管理多个嵌套样式和类。

  • 它允许内联文档,例如我们可以在代码旁边添加注释。

SASS和SCSS的区别

现在让我们看看SASS和SCSS的主要区别:

关键特性

SASS

SCSS

语言

SASS是CSS的预处理器,通过添加新功能来扩展其功能。

SCSS也是预处理器,但功能不如SASS强大。

特性

SASS通过添加变量、嵌套、Mixin、继承和控制指令等新功能来扩展CSS的功能。

SCSS提供了嵌套语法和类。

语法样式

Sass使用缩进语法,与Haml相同。

SCSS使用类似CSS的语法,即块格式。

CSS兼容性

在SASS中,CSS不能用作SASS,SASS也不能用作CSS。

在SCSS中,如果代码在CSS中有效,它在SCSS代码中也自动有效。

社区支持

SASS拥有庞大的社区,包括来自全球的学生、开发者等等。

SCSS的社区较小,主要是一些开发者。

CSS分层嵌套

关于SASS,它支持嵌套功能,可以用来嵌套CSS选择器以在HTML中显示它们。否则,维护较大的嵌套CSS会更繁琐。

在SCSS中,它可以有效地维护多个类和不同类型的嵌套样式。

语法差异

语法上的主要区别在于SASS在其语法或代码中使用其功能。对于SCSS,它使用CSS功能,因为CSS和SCSS的功能相同。

SCSS语法

//SCSS
@mixin cover {
   $color: red;
   @for $i from 1 through 5 {
      &.bg-cover#{$i} { background-color: adjust-hue($color, 15deg * $i) }
   }
}
.wrapper { @include cover }

SASS语法

//SASS
=cover
   $color: red
   @for $i from 1 through 5
      &.bg-cover#{$i}
         background-color: adjust-hue($color, 15deg * $i)
.wrapper
+cover

SASS示例

这里,我们使用SASS来定义变量和样式。我们为body元素定义了一些基本样式,包括背景颜色和字体系列。

接下来,我们将.header选择器嵌套在body选择器内,并为.header内的元素定义一些样式。

用户可以看到,在输出中,“&”符号在“&:hover”中将生成.header a:hover的选择器。

// variables
$base-color: #333;
$font-stack: "Helvetica Neue", sans-serif;
 
// styles
body {
   background-color: $base-color;
   font-family: $font-stack;
} 
//selectors
.header {
   background-color: #fff;
   a {
      color: $base-color;
      text-decoration: none;
      &:hover {
         text-decoration: underline;
      }
   }
}

输出

body {
   background-color: #333;
   font-family: "Helvetica Neue", sans-serif;
} 
.header {
   background-color: #fff;
} 
.header a {
   color: #333;
   text-decoration: none;
} 
.header a:hover {
   text-decoration: underline;
}

SCSS示例

/* .scss file */
$bgcolor: blue;
$textcolor: red;
$fontsize: 25px; 
/* Use the variables */
body {
   background-color: $bgcolor;
   color: $textcolor;
   font-size: $fontsize;
}

输出

body
{
   background-color: blue;

      color: red;
   font-size: 25px;
}
/* now this can apply the resulting HTML file */

结论

最后,SASS被替换或重命名为SCSS,添加了新的样式表并进行了一些修改,但是我们仍然可以使用旧版本的SASS。如果我们想要缩进,我们可以使用SASS;如果我们想要块文档,我们可以使用SCSS。

更新于:2023年5月11日

253 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告