scale3d()

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

試してみましょう

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

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

構文

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

scale3d(sx, sy, sz)

sx

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

sy

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

sz

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

ℝ^2 上のデカルト座標 ℝℙ^2 上の同次座標 ℝ^3 上のデカルト座標 ℝℙ^3 上の同次座標
この変形は三次元空間に適用され、平面で表すことはできません。 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

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

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

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

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

関連情報