このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

sign()

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.

sign()CSS関数で、 1 つの計算式を指定し、引数の数値が負の場合は -1、 引数の数値が正の値の場合は +1、引数の数値が 0⁺ の場合は 0⁺、引数の数値が 0⁻ の場合は 0⁻ を返します。

メモ: abs() は引数の絶対値を返しますが、 sign() は引数の符号を返します。

構文

css
/* プロパティ: sign( 式 ) */
top: sign(20vh - 100px);

引数

sign(x) 関数は、引数として 1 つの値のみを取ります。

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 の場合、0 を返すこともあります。)

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

位置指定方向

もう 1 つの用途は、要素の position を制御することです。値は正または負のいずれかです。

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

仕様書

Specification
CSS Values and Units Module Level 4
# sign-funcs

ブラウザーの互換性

関連情報