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 參數具有相同單位的隨機整數。