Sass - 语法


在本章中,我们将学习 SASS语法。SASS 支持两种语法,即SCSS缩进语法

  • SCSS (Sassy CSS)是 CSS 语法的扩展。这意味着每个有效的 CSS 也是有效的 SCSS。SCSS 使维护大型样式表变得更加容易,并且可以识别供应商特定的语法,许多 CSS 和 SCSS 文件使用扩展名.scss

  • 缩进- 这是较旧的语法,有时简称为SASS。使用这种形式的语法,可以简洁地编写 CSS。SASS 文件使用扩展名.sass

SASS 缩进语法

SASS 缩进语法或简称 SASS 是基于 CSS 的 SCSS 语法的替代方案。

  • 它使用缩进而不是{}来分隔块。

  • 为了分隔语句,它使用换行符而不是分号(;)

  • 属性声明和选择器必须放在自己的行上,并且{}中的语句必须放在新行上并缩进

例如,考虑以下 SCSS 代码 -

.myclass {
   color = red;
   font-size = 0.2em;
}

缩进语法是较旧的语法,不建议在新的 Sass 文件中使用。如果您使用此文件,它将在 CSS 文件中显示错误,因为我们使用=而不是设置属性和变量。

使用以下命令编译上面给出的代码 -

sass --watch C:\ruby\lib\sass\style.scss:style.css

接下来,运行上面的命令;它将在style.css文件中显示错误,如下所示 -

Error: Invalid CSS after "  color = red": expected "{", was ";"
      on line 2 of C:\ruby\lib\sass\style17.scss

1:.myclass {
2:   color = red;
3:   font-size = 0.2em;
4:}

SASS 的语法差异

大多数 CSS 和 SCSS 语法在 SASS 中都能完美运行。但是,存在一些差异,以下各节将对此进行解释 -

属性语法

CSS 属性可以通过两种方式声明 -

  • 属性的声明方式与 CSS 类似,但没有分号(;)

  • 冒号(:)将作为每个属性名称的前缀。

例如,您可以写为 -

.myclass
   :color red
   :font-size 0.2em

默认情况下,可以使用上述两种方式(在属性名称前面不加分号和冒号的属性声明)。但是,当您使用:property_syntax选项时,只允许指定一种属性语法。

多行选择器

在缩进语法中,只要选择器出现在逗号之后,就可以将其放置在换行符上。

例子

以下示例描述了 SCSS 文件中多行选择器的使用 -

<html>
   <head>
      <title>Multiline Selectors</title>
      <link rel = "stylesheet" type = "text/css" href = "style.css" />
      <link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
      <script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
      <script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
   </head>
   
   <body>
      <h2>Example using Multiline Selectors</h2 >
      <p class = "class1">Welcome to Tutorialspoint!!!</p>
      <p class = "class2">SASS stands for Syntactically Awesome Stylesheet...</p>
   </body>
</html>

接下来,创建文件style.scss。请注意.scss扩展名。

样式.scss

.class1,
.class2{
   color:red;
}

您可以使用以下命令告诉 SASS 监视文件并在 SASS 文件发生更改时更新 CSS -

sass --watch C:\ruby\lib\sass\style.scss:style.css

接下来,执行上面给出的命令,它将使用以下代码自动创建style.css文件 -

生成的style.css如下所示 -

样式.css

.class1,
.class2 {
   color: red;
}

输出

让我们执行以下步骤来看看上面给出的代码是如何工作的 -

  • 将上面给出的 html 代码保存在multiline_selectors .html 文件中。

  • 在浏览器中打开此 HTML 文件,输出如下所示。

Sass 语法

评论

注释占据一整行并包含嵌套在其下的所有文本。它们是基于行的缩进语法。有关评论的更多信息,请参阅此链接

@进口

在 SASS 中,@import指令可以带/不带引号编写。与 SCSS 不同,它们必须与引号一起使用。

例如,在 SCSS 中,@import指令可以用作 -

@import "themes/blackforest";
@import "style.sass";

这可以在 SASS 中写为 -

@import themes/blackforest
@import fontstyle.sass

混合指令

SASS 支持@mixin@include等指令的简写。您可以使用=+字符来代替@mixin@include,这需要更少的输入,并使您的代码更简单、更易于阅读。

例如,您可以将 mixin 指令编写为 -

=myclass
   font-size: 12px;
p
   +myclass

上面给出的代码与 -

@mixin myclass
   font-size: 12px;
p
   @include myclass

已弃用的语法

SASS 支持使用一些旧语法。但是,不建议在 SASS 中使用此语法。如果您使用此语法,则会显示警告,并且在后续版本中将其删除。下表显示了一些旧语法。

S. 编号 运算符及描述
1

=

当将变量和属性设置为 SassScript 的值时,它被用来代替 : 。

2

||=

每当您分配变量的默认值时,都会使用它来代替 : 。

3

而不是 $, ! 被用作变量前缀。当使用它代替 $ 时,功能不会改变。