Lzh on GitHub

概览

Sass 支持许多有用的运算符来处理不同的值。这些包括标准的数学运算符,如 + 和 *,以及用于各种其他类型的运算符:

Sass 支持许多有用的运算符来处理不同的值。这些包括标准的数学运算符,如 +*,以及用于各种其他类型的运算符:

  • ==!= 用于检查两个值是否相同
  • +-*/% 对数字具有其通常的数学含义,并对单位具有与科学数学中单位使用相匹配的特殊行为。
  • <<=>>= 检查两个数字是否大于或小于另一个。
  • andornot 具有通常的布尔行为。除了 falsenull,Sass 认为每个值都是“true”。
  • +-/ 可用于拼接字符串
在 Sass 发展的早期,它添加了对颜色进行数学运算的支持。这些运算分别对其颜色的 RGB 通道进行操作,因此将两种颜色相加会产生一种颜色,其红色通道是两个红色通道的总和,依此类推。 这种行为不是很有用,因为逐通道的 RGB 算术与人类感知颜色的方式不符。后来添加了颜色函数,它们更有用,而颜色运算被弃用了。LibSass 和 Ruby Sass 仍然支持它们,但它们会产生警告,并且强烈建议用户避免使用它们。

运算符优先级

Sass 有一个相当标准的运算符优先级,从高到低依次为:

  1. 一元运算符 not+-/
  2. */% 运算符。
  3. +- 运算符。
  4. >>=<<= 运算符。
  5. ==!= 运算符。
  6. and 运算符。
  7. or 运算符。
  8. = 运算符,当它可用时
@debug 1 + 2 * 3 == 1 + (2 * 3); // true
@debug true or false and false == true or (false and false); // true

圆括号

你可以使用圆括号显式控制运算符优先级。圆括号内的运算总是在圆括号外的任何运算之前进行评估。圆括号甚至可以嵌套,在这种情况下,最内层的圆括号将首先被评估。

@debug (1 + 2) * 3; // 9
@debug ((1 + 2) * 3 + 4) * 5; // 65

单个等号

Sass 支持一个特殊的 = 运算符,它只允许在函数参数中使用,它只是创建一个不带引号的字符串,其两个操作数用 = 分隔。它的存在是为了向后兼容非常旧的仅限 IE 的语法。

.transparent-blue {
  filter: chroma(color=#0000ff);
}