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
- ✗
返回以 $base
為底的 $number
的對數。如果 $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
- ✗
以 deg
為單位返回 $number
的反餘弦。
$number
必須無單位。
math.asin($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
以 deg
為單位返回 $number
的反正弦。
$number
必須無單位。
math.atan($number) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
以 deg
為單位返回 $number
的反正切。
$number
必須無單位。
math.atan2($y, $x) //=> number
- Dart Sass
- 自 1.25.0 起
- LibSass
- ✗
- Ruby Sass
- ✗
以 deg
為單位返回 $y
和 $x
的雙變數反正切。
$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.is-unitless($number)
unitless($number) //=> boolean
回傳 $number
是否沒有單位。
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
參數具有相同單位的隨機整數。