样式表的结构
就像 CSS 一样,大多数 Sass 样式表主要由包含属性声明的样式规则组成。但 Sass 样式表还有更多可以与这些功能并存的功能。
声明声明 permalink
¥Statements
Sass 样式表由一系列语句组成,对这些语句进行评估以构建生成的 CSS。某些语句可能具有使用 { 和 } 定义的块,其中包含其他语句。例如,样式规则是带有块的语句。该块包含其他语句,例如属性声明。
¥A Sass stylesheet is made up of a series of statements, which are evaluated in
order to build the resulting CSS. Some statements may have blocks, defined
using { and }, which contain other statements. For example, a style rule is
a statement with a block. That block contains other statements, such as property declarations.
在 SCSS 中,语句之间用分号分隔(如果语句使用块,则分号是可选的)。在缩进语法中,它们只是用换行符分隔。虽然在缩进语法中可以在语句末尾使用分号,但仍然需要换行符。
¥In SCSS, statements are separated by semicolons (which are optional if the statement uses a block). In the indented syntax, they’re just separated by newlines. While you can use a semicolon at the end of a statement in the indented syntax, a newline is still required.
通用声明通用声明 permalink
¥Universal Statements
这些类型的语句可以在 Sass 样式表中的任何位置使用:
¥These types of statements can be used anywhere in a Sass stylesheet:
-
变量声明,如
$var: value。¥Variable declarations, like
$var: value. -
流量控制规则,如
@if和@each。¥Flow control at-rules, like
@ifand@each.
CSS 语句CSS 语句 permalink
¥CSS Statements
这些语句生成 CSS。它们可以在除 @function 之外的任何地方使用:
¥These statements produce CSS. They can be used anywhere except within a
@function:
-
样式规则,如
h1 { /* ... */ }。¥Style rules, like
h1 { /* ... */ }. -
CSS at 规则,如
@media和@font-face。¥CSS at-rules, like
@mediaand@font-face. -
Mixin 用途 使用
@include。¥Mixin uses using
@include. -
¥The
@at-rootrule.
高层声明高层声明 permalink
¥Top-Level Statements
这些语句只能在样式表的顶层使用,或者嵌套在顶层的 CSS 语句中:
¥These statements can only be used at the top level of a stylesheet, or nested within a CSS statement at the top level:
-
模块负载,使用
@use。¥Module loads, using
@use. -
导入,使用
@import。¥Imports, using
@import. -
混合定义 使用
@mixin。¥Mixin definitions using
@mixin. -
函数定义 使用
@function。¥Function definitions using
@function.
其他声明其他声明 permalink
¥Other Statements
-
与
width: 100px一样,属性声明 只能在样式规则和某些 CSS at 规则中使用。¥Property declarations like
width: 100pxmay only be used within style rules and some CSS at-rules. -
@extend规则 只能在样式规则中使用。¥The
@extendrule may only be used within style rules.
表达式表达式 permalink
¥Expressions
表达式是属性或变量声明右侧的任何内容。每个表达式都会生成一个 值。任何有效的 CSS 属性值也是 Sass 表达式,但 Sass 表达式比普通 CSS 值更强大。它们作为参数传递给 混入 和 函数,用于 @if 规则 的控制流,并使用 算术 进行操作。我们将 Sass 的表达式语法称为 SassScript。
¥An expression is anything that goes on the right-hand side of a property or
variable declaration. Each expression produces a value. Any valid CSS
property value is also a Sass expression, but Sass expressions are much more
powerful than plain CSS values. They’re passed as arguments to mixins and
functions, used for control flow with the @if rule, and manipulated
using arithmetic. We call Sass’s expression syntax SassScript.
字面量字面量 permalink
¥Literals
最简单的表达式仅表示静态值:
¥The simplest expressions just represent static values:
-
数字,可能有单位,也可能没有单位,如
12或100px。¥Numbers, which may or may not have units, like
12or100px. -
字符串,可能有引号,也可能没有,如
"Helvetica Neue"或bold。¥Strings, which may or may not have quotes, like
"Helvetica Neue"orbold. -
颜色,可以通过其十六进制表示形式或名称来引用,例如
#c6538c或blue。¥Colors, which can be referred to by their hex representation or by name, like
#c6538corblue. -
布尔值 字面量为
true或false。¥The boolean literals
trueorfalse. -
单例
null。¥The singleton
null. -
值列表,可以用空格或逗号分隔,并且可以用方括号括起来或根本不加括号,例如
1.5em 1em 0 2em、Helvetica, Arial, sans-serif或[col1-start]。¥Lists of values, which may be separated by spaces or commas and which may be enclosed in square brackets or no brackets at all, like
1.5em 1em 0 2em,Helvetica, Arial, sans-serif, or[col1-start]. -
映射 将值与键相关联,如
("background": red, "foreground": pink)。¥Maps that associate values with keys, like
("background": red, "foreground": pink).
运算运算 permalink
¥Operations
Sass 定义了许多操作的语法:
¥Sass defines syntax for a number of operations:
==and!=are used to check if two values are the same.+,-,*,/, and%have their usual mathematical meaning for numbers, with special behaviors for units that matches the use of units in scientific math.<,<=,>, and>=check whether two numbers are greater or less than one another.and,or, andnothave the usual boolean behavior. Sass considers every value "true" except forfalseandnull.+,-, and/can be used to concatenate strings.(and)can be used to explicitly control the precedence order of operations.
其他表达方式其他表达方式 permalink
¥Other Expressions
-
变量,如
$var。¥Variables, like
$var. -
函数调用,与
nth($list, 1)或var(--main-bg-color)一样,可能调用 Sass 核心库函数或用户定义函数,也可能直接编译为 CSS。¥Function calls, like
nth($list, 1)orvar(--main-bg-color), which may call Sass core library functions or user-defined functions, or which may be compiled directly to CSS. -
特殊函数 与
calc(1px + 100%)或url(http://myapp.com/assets/logo.png)一样,都有自己独特的解析规则。¥Special functions, like
calc(1px + 100%)orurl(http://myapp.com/assets/logo.png), that have their own unique parsing rules. -
父选择器、
&。¥The parent selector,
&. -
值
!important,被解析为不带引号的字符串。¥The value
!important, which is parsed as an unquoted string.