CSS入門 | CSS3変形 | 3D Transform
変形(Transform)
CSS3では、transformプロパティを使用してHTML要素の形、サイズ、位置などを立体的に変形できる。
CSS3 3D変形(transform)の対応バージョン
CSS3 3D変形(transform)に対応している主要Webブラウザーのバージョンは次のとおりである。また、ブラウザー別にベンダープレフィックス(vendor prefix)を使ってこの機能に最初に対応したバージョンも併記している。
| プロパティ | ie | chrome | firefox | safari | opera |
|---|---|---|---|---|---|
| transform / transform-origin / perspective / perspective-origin / backface-visibility | 10.0 | 36.0 / 12.0 -webkit- | 16.0 / 10.0 -moz- | 9.0 / 4.0 -webkit- | 23.0 / 15.0 -webkit |
| transform-style | 11.0 | 36.0 / 12.0 -webkit- | 16.0 / 10.0 -moz- | 9.0 / 4.0 -webkit- | 23.0 / 15.0 -webkit |
3D変形(transform)
3D変形(transform)のために提供されるメソッド(method)は次のとおりである。
- rotate()
- translate()
- scale()
- matrix()
- perspective()
rotateX()メソッド
rotateX()メソッドは、その要素を指定された角度だけx軸を基準に回転させる。指定された角度が正の値ならx軸の正の方向へ、負の値ならx軸の負の方向へ回転させる。
<style>
#rotate_01 {
-webkit-transform: rotateX(20deg);
transform: rotateX(20deg);
}
</style>
rotateY()メソッド
rotateY()メソッドは、その要素を指定された角度だけy軸を基準に回転させる。指定された角度が正の値ならy軸の正の方向へ、負の値ならy軸の負の方向へ回転させる。
<style>
#rotate_01 {
-webkit-transform: rotateY(20deg);
transform: rotateY(20deg);
}
</style>
rotateZ()メソッド
rotateZ()メソッドは、その要素を指定された角度だけz軸を基準に回転させる。指定された角度が正の値ならz軸の正の方向へ、負の値ならz軸の負の方向へ回転させる。
<style>
#rotate_01 {
-webkit-transform: rotateZ(20deg);
transform: rotateZ(20deg);
}
</style>
translate3d()メソッド
translate3d()メソッドは、現在位置からその要素を指定されたx軸、y軸、z軸の距離だけ移動させる。指定された距離が正の値ならその軸の正の方向へ、負の値ならその軸の負の方向へ移動させる。
<style>
#trans_01 {
-webkit-transform: translate(100px, 50px);
-ms-transform: translate(100px, 50px);
transform: translate(100px, 50px);
}
#trans_02 {
-webkit-transform: translate3d(100px, 50px, -150px);
transform: translate3d(100px, 50px, -150px);
}
</style>
rotate3d()、translate3d()、scale3d()メソッドのように立体的に見える3D変形に関連するメソッドは、遠近感を表現する基準を指定する必要がある。上の例では、perspective()メソッドを使用して遠近感を表現するために使うピクセル数を500pxに設定している。
CSS3 3D transformプロパティ
| プロパティ | 説明 |
|---|---|
| transform | 要素に2Dまたは3D変形(transform)を適用する。 |
| transform-origin | 要素に変形(transform)を適用する変換中心を設定する。 |
| transform-style | 要素に変形を適用するとき、その変換を子(child)要素にも適用するかどうかを設定する。 |
| perspective | 3D要素に遠近感を表現するときに使用するピクセル数を設定する。 |
| perspective-origin | 3D要素に遠近感を表現するときに使用する基準軸を設定する。 |
| backface-visibility | 要素の前面だけを表示し、背面を表示するかどうかを設定する。 |
CSS3 3D transformメソッド
| メソッド | 説明 |
|---|---|
| matrix3d(n×16) | 4x4行列を利用した16個のパラメーターですべての3D変形メソッドを一度に設定する。 |
| rotate3d(x,y,z,angle) | その要素を指定された角度だけx軸、y軸、z軸を基準に回転させる。 |
| rotateX(angle) | その要素を指定された角度だけx軸を基準に回転させる。 |
| rotateY(angle) | その要素を指定された角度だけy軸を基準に回転させる。 |
| rotateZ(angle) | その要素を指定された角度だけz軸を基準に回転させる。 |
| translate3d(x,y,z) | 現在位置からその要素を指定されたx軸、y軸、z軸の距離だけ移動させる。 |
| translateX(x) | 現在位置からその要素を指定されたx軸の距離だけ移動させる。 |
| translateY(y) | 現在位置からその要素を指定されたy軸の距離だけ移動させる。 |
| translateZ(z) | 現在位置からその要素を指定されたz軸の距離だけ移動させる。 |
| scale3d(x,y,z) | その要素のサイズを指定された倍率だけx軸、y軸、z軸方向に拡大または縮小する。 |
| scaleX(x) | その要素のx軸サイズを指定された倍率だけ拡大または縮小する。 |
| scaleY(y) | その要素のy軸サイズを指定された倍率だけ拡大または縮小する。 |
| scaleZ(z) | その要素のz軸サイズを指定された倍率だけ拡大または縮小する。 |
| perspective(n) | 3D要素に遠近感を表現するときに使用するピクセル数を設定する。 |