matrix()
transformプロパティのmatrix()は要素の自由変形が可能です。
6つの引数をとることができ、それぞれの組み合わせにより要素を任意の形に変形させることができます。
.target{ transform:matrix(a, b, c, d, e, f); }
引数aはデフォルトは1で、1より大きい値を指定することでX軸方向に拡大、1より小さい値を指定することでX軸方向に縮小させることができます。これはscaleX()の値を変更した場合と同じ挙動となります。
引数bはデフォルトは0で、0より大きい値を指定することでY軸方向に変形させることができます。これはskewY()の値を変更した場合と同じ挙動となります。
引数cはデフォルトは0で、0より大きい値を指定することでX軸方向に変形させることができます。これはskewX()の値を変更した場合と同じ挙動となります。
引数dはデフォルトは1で、1より大きい値を指定することでY軸方向に拡大、1より小さい値を指定することでY軸方向に縮小させることができます。これはscaleY()の値を変更した場合と同じ挙動となります。
引数eはデフォルトは0で、0より大きい値を指定することでX軸方向に移動させることができます。これはtranslateX()の値を変更した場合と同じ挙動となります。
引数fはデフォルトは0で、0より大きい値を指定することでY軸方向に移動させることができます。これはtranslateY()の値を変更した場合と同じ挙動となります。
これらの値を組み合わせ要素を任意の形状に変形が可能です。
matrix()が利用できるtransformプロパティは一部のブラウザでは「-webkit-」や「-ms-」といったベンダープレフィックスを利用して実装されているので、ベンダープレフィックスを付けた記述も追加することでより多くのブラウザをサポートできるでしょう。
.target{ -webkit-transform:matrix(2, 1, 1, 2, 100,100); -ms-transform:matrix(2, 1, 1, 2, 100,100); transform:matrix(2, 1, 1, 2, 100,100); }
対応ブラウザ
IE | Chrome 29 | Safari | Firefox 23 | iOS | Android |
---|---|---|---|---|---|
△ 9 ◯ 10〜 |
△ | △ 5.1〜 | ◯ | △ 3.2〜 | △ 2.1〜 |
◯は実装済み、△はベンダープレフィックス付の実装、☓は未実装です。
Google ChoromeとFirefoxは執筆時点での最新バージョンでの実装状況です。
参考URL
15. The Transform Functions - matrix - W3C
登録日 : 2013年10月16日 最終更新日 : 2013年10月26日
同じカテゴリー(Transform)のエントリー
- backface-visibility
- perspective-origin
- perspective
- transform-style
- transform-origin
- matrix3d()
- matrix()
- perspective()
- skewY()
- skewX()
- skew()
- rotate3d()
- rotateZ()
- rotateY()
- rotateX()
- rotate()
- scale3d()
- scaleZ()
- scaleY()
- scaleX()
- scale()
- translateZ()
- translate3d()
- translateY()
- translateX()
- translate()
- transform