abs()

基準線 2025
新推出

自 2025 年 6 月起,此功能已在最新的裝置和瀏覽器版本中可用。此功能可能不適用於舊裝置或瀏覽器。

abs() CSS 函式返回引數的絕對值,其型別與輸入型別相同。

語法

css
/* abs( <calc-sum> ) */
abs(20% - 100px)
abs(var(--gradientAngle))

引數

abs() 函式接受一個引數。

<calc-sum>

解析為 <number><dimension><percentage><calc-keyword> 的表示式或計算。

返回值

<calc-sum> 的絕對值。

  • 如果 <calc-sum> 的數值是正數或 0⁺,則函式返回 <calc-sum>
  • 否則,它返回 -1 * <calc-sum>

正式語法

<abs()> = 
abs( <calc-sum> )

<calc-sum> =
<calc-product> [ [ '+' | '-' ] <calc-product> ]*

<calc-product> =
<calc-value> [ [ '*' | / ] <calc-value> ]*

<calc-value> =
<number> |
<dimension> |
<percentage> |
<calc-keyword> |
( <calc-sum> )

<calc-keyword> =
e |
pi |
infinity |
-infinity |
NaN

示例

正變數

abs() 函式可用於確保值始終為正。在以下示例中,CSS 自定義屬性 --font-size 用作 font-size 的值。將此自定義屬性包裝在 abs() 中會將負值轉換為正值。

css
h1 {
  font-size: abs(var(--font-size));
}

控制漸變方向角度

您還可以使用 abs() 函式控制漸變方向。在以下示例中,角度為 -45 度時,漸變將從紅色開始並過渡到藍色。透過使用 abs() 使值變為正數,漸變將從藍色開始並過渡到紅色。

css
div {
  --deg: -45deg;
  background-image: linear-gradient(abs(var(--deg)), blue, red);
}

向後相容的備用方案

在不支援 CSS abs() 函式的瀏覽器中,您可以使用 CSS max() 函式實現相同的效果

css
p {
  line-height: max(var(--lh), -1 * var(--lh));
}

我們使用 max() 函式從兩個值的列表中返回最大(最正)值:var(--lh)-1 * var(--lh)。無論 --lh 是正數還是負數,計算的返回值將始終是正數,即絕對值。

規範

規範
CSS 值和單位模組第 4 級
# sign-funcs

瀏覽器相容性

另見