abs()
语法
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 |
浏览器兼容性
加载中…