sign()

有限可用性

此功能不是基线,因为它在一些最广泛使用的浏览器中不起作用。

sign() CSS 函数 包含一个计算,如果参数的数值为负,则返回 -1,如果参数的数值为正,则返回 +1,如果参数的数值为 0⁺,则返回 0⁺,如果参数的数值为 0⁻,则返回 0⁻

注意:虽然 abs() 返回参数的绝对值,但 sign() 返回参数的符号。

语法

css
/* property: sign( expression ) */
top: sign(20vh - 100px);

参数

sign(x) 函数只接受一个值作为其参数。

x

解析为数字的计算。

返回值

表示 A 符号的数字

  • 如果 x 为正,则返回 1
  • 如果 x 为负,则返回 -1
  • 如果 x 为正零,则返回 0
  • 如果 x 为负零,则返回 -0
  • 否则,返回 NaN

正式语法

<sign()> = 
sign( <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

示例

背景图像位置

例如,在 background-position 中,如果背景图像大于背景区域,则正百分比解析为负长度,反之亦然。因此,sign(10%) 可能会返回 1-1,具体取决于百分比的解析方式!(或者甚至返回 0,如果它解析为零长度。)

css
div {
  background-position: sign(10%);
}

位置方向

另一个用例是控制元素的 position。正值或负值。

css
div {
  position: absolute;
  top: calc(100px * sign(var(--value)));
}

规范

规范
CSS 值和单位模块级别 4
# sign-funcs

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅