Spec-Zone.ru › CSS

CSS-функция `sign()`

Базовая поддержка Недавно стала доступна

Эта функция работает в последних версиях устройств и браузеров. Возможно, она не будет работать на старых устройствах или в старых версиях браузеров. Она доступна во всех браузерах с июня 2025 года.

sign() — это CSS-функция, которая содержит одно вычисление и возвращает -1, если числовое значение аргумента отрицательное, +1, если числовое значение аргумента положительное, 0⁺, если числовое значение аргумента равно 0⁺, и 0⁻, если числовое значение аргумента равно 0⁻.

Примечание: в то время как abs() возвращает абсолютное значение аргумента, sign() возвращает знак аргумента.

Синтаксис

/* 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> | '/' <number> ]*

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

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

Примеры

Положение фонового изображения

Например, в свойстве background-position положительные процентные значения преобразуются в отрицательную длину, и наоборот, если фоновое изображение больше области фона. Таким образом, sign(10%) может вернуть 1 или -1 в зависимости от того, как вычисляется процентное значение! (Или даже 0, если оно вычисляется относительно нулевой длины.)

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

Направление позиционирования

Ещё один вариант использования — управление position элемента с помощью положительного или отрицательного значения.

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

Спецификации

Спецификация
Модуль значений и единиц CSS, уровень 4
# sign-funcs

Совместимость с браузерами

Настольные ПК Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome для Android Firefox для Android Opera для Android Safari для iOS Samsung Internet WebView для Android WebView для iOS
sign
138
138
118
122
15.4
138
118
91
15.4
30.0
138
Нет
typed_division_produces_unitless_number
140
140
Нет
124
26
140
Нет
92
26
30.0
140
Нет

См. также

  • abs()
  • Использование типизированной арифметики CSS

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/sign

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API