scale3d()

Baseline 2022

Newly available

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

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

関連情報