abs()
Baseline
2025
Newly available
Since June 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
構文
css
/* abs( <calc-sum> ) */
abs(20% - 100px)
abs(var(--gradientAngle))
引数
abs(x) 関数は、引数を 1 つだけ受け取ります。
<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() 関数を使用すると、値が常に正となることを保証できます。次の例では、--font-size という CSS カスタムプロパティが 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 が正であれ負であれ、返される値は常に正であり、これは絶対値となります。
仕様書
| Specification |
|---|
| CSS Values and Units Module Level 4> # sign-funcs> |