matrix()

matrix()CSS関数で、二次元同次変換行列を定義します。結果は <transform-function> データ型になります。

メモ: matrix(a, b, c, d, tx, ty)matrix3d(a, b, 0, 0, c, d, 0, 0, 0, 0, 1, 0, tx, ty, 0, 1) の短縮形です。

構文

matrix() 関数は 6 つの値で指定されます。定数は内蔵されていて引数としては渡されず、その他の引数は列優先の順で記述されます。

matrix(a, b, c, d, tx, ty)

a b c d

<number> で、線形変換を記述します。

tx ty

<number> で、適用する変換を記述します。

ℝ^2 のデカルト座標 ℝℙ^2 の同次座標 ℝ^3 のデカルト座標 ℝℙ^3 の同次座標
a c b d a c tx b d ty 0 0 1 a c tx b d ty 0 0 1 a c 0 tx b d 0 ty 0 0 1 0 0 0 0 1
[a b c d tx ty]

値は次の関数を表します。 matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )

HTML

<div>Normal</div>
<div class="changed">Changed</div>

CSS

div {
  width: 80px;
  height: 80px;
  background-color: skyblue;
}

.changed {
  transform: matrix(1, 2, -1, 1, 80, 80);
  background-color: pink;
}

結果

仕様書

Specification
CSS Transforms Module Level 1
# funcdef-transform-matrix

ブラウザーの互換性

BCD tables only load in the browser

関連情報