📅  最后修改于: 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是基于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:}
大多数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扩展名。
.class1,
.class2{
color:red;
}
您可以使用以下命令,让SASS监视文件并在SASS文件更改时更新CSS-
sass --watch C:\ruby\lib\sass\style.scss:style.css
接下来,执行上面给定的命令,它将使用以下代码自动创建style.css文件-
生成的style.css如下所示-
.class1,
.class2 {
color: red;
}
让我们执行以下步骤,看看上面给出的代码如何工作-
将上面给定的html代码保存在multiline_selectors .html文件中。
在浏览器中打开此HTML文件,显示输出,如下所示。
注释占据了整行,并包含嵌套在其下的所有文本。它们是基于行的缩进语法。有关注释的更多信息,请参考此链接。
在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 $. |