Widely available 安心して使用可能。すべての主要ブラウザで広くサポートされている。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
36
12
16
15.4
36
15.4
その他

perspective は CSS のプロパティで、 z=0 の平面とユーザーとの間の距離を定めて 3D に配置された要素に遠近感を与えます。

36
12
16
9
36
9

perspective-origin は CSS のプロパティで、閲覧者の視点の位置を決めます。これは perspective プロパティによって「消点」として使われます。

36
12
16
9
36
9
CSS プロパティ
bottom
12
12
10
4
18
2
center
12
12
10
4
18
2
left
12
12
10
4
18
2
right
12
12
10
4
18
2
top
12
12
10
4
18
2
none
12
12
10
4
18
3.2
その他

transform-style は CSS のプロパティで、要素の子要素を 3D 空間に配置するのか、平面化して要素の平面に配置するのかを設定します。

36
12
16
9
36
9
CSS プロパティ
3d

3Dのサポート

12
12
16
4
18
3.2
CSS タイプ

matrix3d() は CSS の関数で、4x4 の 3D 同次変換行列を定義します。 結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

perspective() は CSS の関数で、ユーザーと z=0 平面との間の距離を定義し、閲覧者からの視点は二次元のインターフェイスが三次元であるかのようになります。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2
perspective.none

`視点(なし)`

97
97
93
15.4
97
15.4

rotate3d() は CSS の関数は、要素を 3D 空間内の固定した軸を中心に、形を崩さずに回転させる座標変換を定義します。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

rotateX() は CSS の関数で、要素の形を変化させずに横座標 (水平軸) の周りを回転させる座標変換を定義します。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

rotateY() は CSS の関数で、要素の形を変化させずに縦座標 (垂直軸) の周りを回転させる座標変換を定義します。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

rotateZ() は CSS の関数で、要素の形を変化させずに Z 軸の周りを回転させる座標変換を定義します。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

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

12
12
10
4
18
3.2

scaleZ() は CSS の関数で、要素を Z 軸に沿って変倍する座標変換を定義します。結果は <transform-function> データ型になります。

12
12
10
4
18
3.2

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

12
12
10
4
18
3.2

translateZ() は CSS の関数で、三次元空間の z 軸に沿って、すなわち閲覧者に近づいたり遠ざかったりするように要素を移動させます。その結果は <transform-function> データ型となります。

12
12
10
4
18
3.2
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 2件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (49)
  • ベンダープレフィックス付きで対応: -moz- (10)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (5.1)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (18)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (5)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 3件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (49)
  • ベンダープレフィックス付きで対応: -moz- (10)
実装メモ
  • バージョン 147 以降、Firefox は互換性を高めるために単位のない値を含む `-webkit-perspective` をサポートします。
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (4)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (18)
注釈 2件
実装メモ
  • iOS 13 では、「perspective」プロパティが正しく機能しませんでした。 この問題は iOS 14 で修正されました。
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (2)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 2件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (49)
  • ベンダープレフィックス付きで対応: -moz- (10)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (4)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (18)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (2)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (12)
注釈 2件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (49)
  • ベンダープレフィックス付きで対応: -moz- (10)
注釈 2件
実装メモ
  • Safari 17 より前では、`::before` および `::after` 擬似要素は 3D レンダリング コンテキストに含まれていませんでした (バグ 256430 を参照)。
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (4)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (18)
注釈 1件
対応条件
  • ベンダープレフィックス付きで対応: -webkit- (2)
注釈 1件
実装メモ
  • Firefox 16 より前では、`matrix3d()` の変換値は、標準の `<number>` に加えて `<length>` にすることもできました。

基本構文

CSS
.card-container {
  perspective: 1000px;
}

.card {
  transform-style: preserve-3d;
  transition: transform 0.6s ease;
}

.card:hover {
  transform: rotateY(180deg);
}

.card-front, .card-back {
  backface-visibility: hidden;
}

.card-back {
  transform: rotateY(180deg);
}

ライブデモ

Rotatey (hover in flip)

3D Transforms RotateY (hover in flip) demo.

プレビュー全画面表示

Rotatex Skew

3D Transforms RotateX skew demo.

プレビュー全画面表示

Perspective Comparison

3D Transforms Perspective comparison demo.

プレビュー全画面表示

実務での使いどころ

  • カードフリップ

    ホバーやクリックで裏返るカードUIを、CSSだけで実現できる。

  • 3Dカルーセル

    要素を3D空間に配置し、回転するカルーセルを構築する。

注意点

  • 3Dトランスフォームは GPUを使用するため、モバイルデバイスでのパフォーマンスに注意。
  • backface-visibility: hidden を忘れると裏面が透けて見える。

アクセシビリティ

  • 3D演出は前庭障害のあるユーザーに影響する可能性があるため、prefers-reduced-motion を考慮する。