sass:math
- Dart Sass
- 自 1.23.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
目前只有 Dart Sass 支持使用 @use
加载内置模块。其他实现的用户必须使用全局名称调用函数 。
变量变量永久链接
math.$epsilon
- Dart Sass
- 自 1.55.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
1 和根据浮点比较大于 1 的最小 64 位浮点数之间的差值。由于 Sass 数字的10 位精度,在许多情况下这将看起来像 0。
math.$max-number
- Dart Sass
- 自 1.55.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
可以表示为 64 位浮点数的 最大有限数。
SCSS 语法
@use 'sass:math';
@debug math.$max-number; // 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Sass 语法
@use 'sass:math'
@debug math.$max-number // 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
math.$max-safe-integer
- Dart Sass
- 自 1.55.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
最大整数 n
,使得 n
和 n + 1
都可以精确地表示为 64 位浮点数 。
math.$min-number
- Dart Sass
- 自 1.55.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
可以表示为 64 位浮点数的最小正数。由于 Sass 数字的10 位精度,在许多情况下这将看起来像 0。
math.$min-safe-integer
- Dart Sass
- 自 1.55.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
最小整数 n
,使得 n
和 n - 1
都可以精确地表示为 64 位浮点数 。
边界函数边界函数永久链接
math.ceil($number)
ceil($number) //=> number
将 $number
向上舍入到下一个最高整数 。
math.clamp($min, $number, $max) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
将 $number
限制在 $min
和 $max
之间的范围内。如果 $number
小于 $min
,则返回 $min
,如果它大于 $max
,则返回 $max
。
$min
、$number
和 $max
必须具有兼容的单位,或者全部为 无单位。
math.floor($number)
floor($number) //=> number
将 $number
向下舍入到下一个最低整数 。
math.max($number...)
max($number...) //=> number
返回一个或多个 数字中最高的那个。
math.min($number...)
min($number...) //=> number
返回一个或多个 数字中最低的那个。
math.round($number)
round($number) //=> number
将 $number
舍入到最接近的整数 。
距离函数距离函数永久链接
math.abs($number)
abs($number) //=> number
返回 $number
的绝对值。如果 $number
为负数,则返回 -$number
,如果 $number
为正数,则按原样返回 $number
。
math.hypot($number...) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回每个 $number
等于组件的 n 维向量 的长度。例如,对于三个数字 a、b 和 c,这将返回 a² + b² + c² 的平方根。
这些数字必须要么全部具有兼容的单位,要么全部为无单位。并且由于这些数字的单位可能不同,因此输出将采用第一个 数字的单位。
指数函数指数函数永久链接
math.log($number, $base: null) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
相对于 $base
的对数。如果 $base
为 null
,则计算自然对数 。
$number
和 $base
必须为 无单位。
math.pow($base, $exponent) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
将 $base
提升到 $exponent
的 幂。
$base
和 $exponent
必须为 无单位。
math.sqrt($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的平方根。
$number
必须为 无单位。
三角函数三角函数永久链接
math.cos($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的余弦。
$number
必须是一个角度(它的单位必须与 deg
兼容)或无单位。如果 $number
没有单位,则假定它为 rad
。
math.sin($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的正弦。
$number
必须是一个角度(它的单位必须与 deg
兼容)或无单位。如果 $number
没有单位,则假定它为 rad
。
math.tan($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的正切。
$number
必须是一个角度(它的单位必须与 deg
兼容)或无单位。如果 $number
没有单位,则假定它为 rad
。
math.acos($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的反余弦,以 deg
为单位。
$number
必须为 无单位。
math.asin($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的反正弦,以 deg
为单位。
$number
必须为 无单位。
math.atan($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number
的反正切,以 deg
为单位。
$number
必须为 无单位。
math.atan2($y, $x) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $y
和 $x
的2 参数反正切,以 deg
为单位。
$y
和 $x
必须具有兼容的单位或为 无单位。
💡 有趣的事实
math.atan2($y, $x)
不同于 atan(math.div($y, $x))
,因为它保留了相关点的象限。例如,math.atan2(1, -1)
对应于点 (-1, 1)
并返回 135deg
。相比之下,math.atan(math.div(1, -1))
和 math.atan(math.div(-1, 1))
首先解析为 atan(-1)
,因此两者都返回 -45deg
。
单位函数单位函数永久链接
math.compatible($number1, $number2)
comparable($number1, $number2) //=> boolean
返回 $number1
和 $number2
是否具有兼容的 单位。
如果返回 true
,则 $number1
和 $number2
可以安全地进行加法、减法 和比较。否则,这样做会导致 错误。
⚠️ 注意!
此函数的全局名称是 comparable
,但在将其添加到 sass:math
模块时,名称更改为 compatible
,以便更清楚地传达函数 的功能。
SCSS 语法
@use 'sass:math';
@debug math.compatible(2px, 1px); // true
@debug math.compatible(100px, 3em); // false
@debug math.compatible(10cm, 3mm); // true
Sass 语法
@use 'sass:math'
@debug math.compatible(2px, 1px) // true
@debug math.compatible(100px, 3em) // false
@debug math.compatible(10cm, 3mm) // true
math.unit($number)
unit($number) //=> quoted string
返回 $number
单位的字符串表示形式。
⚠️ 注意!
此函数旨在用于调试;它的输出格式不保证在 Sass 版本或 实现之间保持一致。
SCSS 语法
@use 'sass:math';
@debug math.unit(100); // ""
@debug math.unit(100px); // "px"
@debug math.unit(5px * 10px); // "px*px"
@debug math.unit(math.div(5px, 1s)); // "px/s"
Sass 语法
@use 'sass:math'
@debug math.unit(100) // ""
@debug math.unit(100px) // "px"
@debug math.unit(5px * 10px) // "px*px"
@debug math.unit(math.div(5px, 1s)) // "px/s"
其他函数其他函数永久链接
math.div($number1, $number2) //=> number
- Dart Sass
- 自 1.33.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
返回 $number1
除以 $number2
的结果。
两个数字共有的任何单位都将被抵消。$number1
中不在 $number2
中的单位将最终出现在返回值的分子中,而 $number2
中不在 $number1
中的单位将最终出现在其 分母中。
⚠️ 注意!
出于向后兼容性的目的,这将返回与已弃用的 /
运算符 完全相同的结果,包括将两个字符串与它们之间的 /
字符连接在一起。但是,这种行为最终将被移除,不应该在新 样式表中使用。
SCSS 语法
@use 'sass:math';
@debug math.div(1, 2); // 0.5
@debug math.div(100px, 5px); // 20
@debug math.div(100px, 5); // 20px
@debug math.div(100px, 5s); // 20px/s
Sass 语法
@use 'sass:math'
@debug math.div(1, 2) // 0.5
@debug math.div(100px, 5px) // 20
@debug math.div(100px, 5) // 20px
@debug math.div(100px, 5s) // 20px/s
math.percentage($number)
percentage($number) //=> number
将无单位的 $number
(通常是 0 到 1 之间的十进制数)转换为 百分比。
💡 有趣的事实
此函数与 $number * 100%
相同。
math.random($limit: null)
random($limit: null) //=> number
如果 $limit
为 null
,则返回 0 到 1 之间的随机十进制数。
SCSS 语法
@use 'sass:math';
@debug math.random(); // 0.2821251858
@debug math.random(); // 0.6221325814
Sass 语法
@use 'sass:math'
@debug math.random() // 0.2821251858
@debug math.random() // 0.6221325814
如果 $limit
是一个大于或等于 1 的数字,则返回 1 到 $limit
之间的随机整数。
⚠️ 注意!
random()
会忽略 $limit
中的单位。 此行为已弃用,random($limit)
将返回一个与 $limit
参数具有相同单位的随机整数。