CSS 数値ファクトリー関数

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

CSS 数値ファクトリー関数、たとえば CSS.em()CSS.turn() は、単位を使用するメソッド名とし、数値を引数とした値の CSSUnitValues を返すもので、このメソッドを使用すると、数値引数で単位を設定することができます。これらの関数は CSSUnitValue() コンストラクターを使うよりも冗長でなく新しい数値を生成します。

構文

js
CSS.number(number)
CSS.percent(number)

// <length>
CSS.em(number)
CSS.ex(number)
CSS.ch(number)
CSS.ic(number)
CSS.rem(number)
CSS.lh(number)
CSS.rlh(number)
CSS.vw(number)
CSS.vh(number)
CSS.vi(number)
CSS.vb(number)
CSS.vmin(number)
CSS.vmax(number)
CSS.cm(number)
CSS.mm(number)
CSS.Q(number)
CSS.in(number)
CSS.pt(number)
CSS.pc(number)
CSS.px(number)

// <angle>
CSS.deg(number)
CSS.grad(number)
CSS.rad(number)
CSS.turn(number)

// <time>
CSS.s(number)
CSS.ms(number)

// <frequency>
CSS.Hz(number)
CSS.kHz(number)

// <resolution>
CSS.dpi(number)
CSS.dpcm(number)
CSS.dppx(number)

// <flex>
CSS.fr(number)

数値ファクトリー関数の CSS.vmax() を使用して CSSUnitValue を作成します。

js
const height = CSS.vmax(50);

console.log(height); // CSSUnitValue {value: 50, unit: "vmax"}
console.log(height.value); // 50
console.log(height.unit); // vmax

この例では、要素のマージンを CSS.px() ファクトリー関数で設定します。

js
myElement.attributeStyleMap.set("margin", CSS.px(40));
const currentMargin = myElement.attributeStyleMap.get("margin");
console.log(currentMargin.value, currentMargin.unit); // 40, 'px'

仕様書

Specification
CSS Object Model (CSSOM)
# namespacedef-css

ブラウザーの互換性

BCD tables only load in the browser

関連情報