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.

Hàm sign() trong CSS là một hàm chứa một phép tính và trả về -1 nếu giá trị số của đối số là âm, +1 nếu giá trị số của đối số là dương, 0⁺ nếu giá trị số của đối số là 0⁺, và 0⁻ nếu giá trị số của đối số là 0⁻.

Note: Trong khi abs() trả về giá trị tuyệt đối của đối số, sign() trả về dấu của đối số.

Cú pháp

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

Tham số

Hàm sign(x) chỉ chấp nhận một giá trị làm tham số.

x

Một phép tính trả về một số.

Giá trị trả về

Một số đại diện cho dấu của A:

  • Nếu x là dương, trả về 1.
  • Nếu x là âm, trả về -1.
  • Nếu x là số không dương, trả về 0.
  • Nếu x là số không âm, trả về -0.
  • Trường hợp khác, trả về NaN.

Cú pháp chính thức

<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

Ví dụ

Vị trí ảnh nền

Ví dụ, trong background-position, các phần trăm dương trả về độ dài âm, và ngược lại, nếu ảnh nền lớn hơn vùng nền. Do đó sign(10%) có thể trả về 1 hoặc -1, tùy thuộc vào cách phần trăm được giải quyết! (Hoặc thậm chí 0, nếu nó được giải quyết theo độ dài không.)

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

Hướng vị trí

Một trường hợp sử dụng khác là kiểm soát position của phần tử. Giá trị có thể là dương hoặc âm.

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

Thông số kỹ thuật

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

Khả năng tương thích trình duyệt

Xem thêm