scale3d()

Baseline Widely available

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

scale3d()CSS関数で、 3D 空間において要素を変倍する座標変換を定義します。 変倍量はベクトルで定義されるため、それぞれの次元ごとに異なる倍率で変倍することができます。結果は <transform-function> データ型になります。

試してみましょう

この変倍座標変換は、三次元ののベクトルであることが特徴です。この座標は、それぞれの方向にどれだけ変倍を行うかを定義します。3 つすべての座標が等しい場合、変倍は一様 (等方的) で、要素の形が保たれます (これは相似変換です)。

座標の値が [-1, 1] の範囲外の場合、変倍は、その座標の方向に要素を拡大します。この範囲内の場合、変倍は、要素をその座標の方向に縮小します。負の場合、変倍は 点対称化 と大きさの変更を行います。1 と等しい場合、変倍は何もしません。

構文

scale3d() 関数は 3 つの値で指定され、それぞれの値はそれぞれの方向に適用される変倍率を表します。

css
scale3d(sx, sy, sz)

sx

<number> で、変倍ベクトルの横軸を表します。

sy

<number> で、変倍ベクトルの縦軸を表します。

sz

<number> で、変倍ベクトルの Z 成分を表します。

直交座標系 (ℝ^2) 同次座標系 (ℝℙ^2) 直交座標系 (ℝ^3) 同次座標系 (ℝℙ^3)
この座標変換は 3D 空間に適用され、平面で表すことはできません。 ( sx 0 0 0 sy 0 0 0 sz ) ( sx 0 0 0 0 sy 0 0 0 0 sz 0 0 0 0 1 )

原点の変更なし

HTML

html
<div>Normal</div>
<div class="scaled">Scaled</div>

CSS

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

.scaled {
  transform: perspective(500px) scale3d(2, 0.7, 0.2) translateZ(100px);
  background-color: pink;
}

結果

座標変換の原点を移動

HTML

html
<div>Normal</div>
<div class="scaled">Scaled</div>

CSS

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

.scaled {
  transform: perspective(500px) scale3d(2, 0.7, 0.2) translateZ(100px);
  transform-origin: left;
  background-color: pink;
}

結果

仕様書

Specification
CSS Transforms Module Level 2
# funcdef-scale3d

ブラウザーの互換性

BCD tables only load in the browser

関連情報