📜  Sass-语法

📅  最后修改于: 2020-10-20 05:39:25             🧑  作者: Mango


在本章中,我们将研究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文件中多行选择器的用法-

Multiline Selectors
      
      
      
      
   
   
   
      

Example using Multiline Selectors

Welcome to Tutorialspoint!!!

SASS stands for Syntactically Awesome Stylesheet...

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

style.scss

.class1,
.class2{
   color:red;
}

您可以使用以下命令,让SASS监视文件并在SASS文件更改时更新CSS-

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

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

生成的style.css如下所示-

style.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. No. Operator & Description
1

=

It was used instead of : when setting variables and properties to values of SassScript.

2

||=

It was used instead of : whenever you are assigning default value of a variable.

3

!

Instead of $, ! was used as variable prefix. Functionality will not be changed when it is used instead of $.