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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
scale3d()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報