translate3d()

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.

translate3d()CSS関数で、要素を三次元空間内で再配置します。返値は <transform-function> データ型です。

試してみましょう

この変換は三次元ベクトルであることが特徴です。座標は要素がそれぞれの方向にどれだけ移動するかを定義します。

構文

css
translate3d(tx, ty, tz)

tx

移動ベクトルの横座標を表す <length> または <percentage> です。

ty

移動ベクトルの縦座標を表す <length> または <percentage> です。

tz

移動ベクトルの z 成分を表す <length> です。 <percentage> 値は指定できません。この場合、これを含む座標変換は無効とされます。

直交座標系 (ℝ^2) 同次座標系 (ℝℙ^2) 直交座標系 (ℝ^3) 同次座標系 (ℝℙ^3)

この変換は 3D 空間に適用され、平面上では表せません。

ℝ^3 では線形変換ではないので、直交座標の行列で表すことはできません。 ( 1 0 0 tx 0 1 0 ty 0 0 1 tz 0 0 0 1 )

単一軸の座標変換の使用

HTML

html
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>

CSS

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

.moved {
  /* perspective(500px) translateX(10px) と等価 */
  transform: perspective(500px) translate3d(10px, 0, 0px);
  background-color: pink;
}

結果

z 軸と x 軸を組み合わせた座標変換

HTML

html
<div>Static</div>
<div class="moved">Moved</div>
<div>Static</div>

CSS

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

.moved {
  transform: perspective(500px) translate3d(10px, 0, 100px);
  background-color: pink;
}

結果

仕様書

Specification
CSS Transforms Module Level 2
# funcdef-translate3d

ブラウザーの互換性

BCD tables only load in the browser

関連情報