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

View in English Always switch to English

mod()

Baseline 2024
Newly available

Since May 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

mod()CSS関数で、最初の引数を 2 つ目の引数で割ったときのモジュラスを返します。これは、JavaScript の剰余演算子 (%) と似ています。モジュラスは、1 つのオペランド(被除数)を 2 つ目のオペランド(除数)で割ったときに残る値です。常に除数の符号を取ります。

計算は a - (Math.floor(a / b) * b) です。例えば、CSS の関数 mod(21, -4) は、余りの -3 を返します。完全な計算は 21 - (Math.floor(21 / -4) * -4) です。21-4 で割ると、結果は -5.25 になります。これは -6 に切り捨てられます。-6-4 を掛けると 24 になります。この 24 を元の 21 から引くと、余りは -3 になります。

構文

css
/* 単位なしの <number> */
line-height: mod(7, 2); /* 1 */
line-height: mod(14, 5); /* 4 */
line-height: mod(3.5, 2); /* 1.5 */

/* <percentage> や <dimension> に基づく単位 */
margin: mod(15%, 2%); /* 1% */
margin: mod(18px, 4px); /* 2px */
margin: mod(19rem, 5rem); /* 4rem */
margin: mod(29vmin, 6vmin); /* 5vmin */
margin: mod(1000px, 29rem); /* 72px - ルートの font-size が 16px の場合 */

/* 負の値・正の値 */
rotate: mod(100deg, 30deg); /* 10deg */
rotate: mod(135deg, -90deg); /* -45deg */
rotate: mod(-70deg, 20deg); /* 10deg */
rotate: mod(-70deg, -15deg); /* -10deg */

/* 計算 */
scale: mod(10 * 2, 1.7); /* 1.3 */
rotate: mod(10turn, 18turn / 3); /* 4turn */
transition-duration: mod(20s / 2, 3000ms * 2); /* 4s */

引数

関数 mod(dividend, divisor) は、カンマで区切られた 2 つの値を引数として受け入れます。関数が有効であるためには、両方の引数は同じ型、数値サイズ<percentage> のいずれかである必要があります。2 つの引数の単位は同じである必要はありませんが、<length><angle><time><frequency> などの同じサイズの型である必要があります。

dividend

被除数を表す <number><dimension><percentage> に解決される計算式。

divisor

除数として表される <number><dimension><percentage> に解決される計算式。

返値

モジュラス、つまり余りの演算を、<number><dimension><percentage> (引数の型に応じて)で表して返します。

  • divisor0 の場合、結果は NaN です。
  • dividendinfinite の場合、結果は NaN です。
  • divisor が正の値の場合、結果は正の値 (0⁺) となり、divisor が負の値の場合、結果は負の値 (0⁻) となります。

形式文法

<mod()> = 
mod( <calc-sum> , <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

仕様書

Specification
CSS Values and Units Module Level 4
# funcdef-mod

ブラウザーの互換性

関連情報