平面空間で要素を変形する
transform
{
transform
transformプロパティは、トランスフォーム関数を指定して対象要素を変形させます。平面空間での変形では、右方向を正とするx軸、下方向を正とするy軸を定義した2方向での変形となります。変形は要素の中心を軸に実行されます。
初期値 | none |
---|---|
継承 | なし |
適用される要素 | 変形可能な要素 |
モジュール | CSS Transforms Module Level 1 |
値の指定方法
noneを除き関数型の値となり、半角スペースで区切って複数指定できます。また、各値を指定する順序によって表示される結果が異なります。
トランスフォーム関数
none | 要素を変形しません。 |
---|---|
matrix() | 行列式によって要素を変形します。6個の任意の数値をカンマ(,)で区切って指定します。各値は順に、x軸方向の拡大・縮小率、y軸方向の傾斜率、x軸方向の傾斜率、y軸方向の拡大・縮小率、x座標の移動距離、y座標の移動距離に対応しています。 |
transrate() | 要素のxy座標を移動します。移動距離を単位付きの数値で指定します。 x座標、y座標はカンマ(,)で区切って指定します。translate(15px, 20px)と指定 すると、右へ15px、下へ20px 移動します。 |
translateX() | 要素のx座標を移動します。移動距離を単位付きの数値で指定します。 |
translateY() | 要素のy座標を移動します。移動距離を単位付きの数値で指定します。 |
scale() | 要素をx軸、y軸方向に拡大・縮小します。値はカンマ(,)で区切って指定します。scale(2,0.5)と指定すると、x軸方向に2 倍拡大、y軸方向に1/2 縮小されます。 |
scaleX() | 要素をx軸方向に拡大・縮小します。任意の実数で倍率を指定します。負の値を指定すると、要素は裏返ります。 |
scaleY() | 要素をy軸方向に拡大・縮小します。任意の実数で倍率を指定します。負の値を指定すると、要素は裏返ります。 |
rotate() | 要素を回転します。回転角度を単位付きの数値で指定します。rotate(50deg)と指定すると、要素は時計回りに50度回転します。 |
skew() | 要素の形状をx軸、y軸方向に傾斜させます。値はカンマ(,)で区切って指定します。 |
skewX() | 要素の形状をx軸方向に傾斜させます。傾斜角を単位付きの数値で指定します。 |
skewY() | 要素の形状をy軸方向に傾斜させます。傾斜角を単位付きの数値で指定します。 |
サンプルコード
以下の例では、画像をtranslate()関数で移動したあとに、rotate()関数で15度回転しています。
.box img{ transform: translate(50px, 50px) rotate(15deg); }
以下の例では、画像をtranslate() 関数で移動したあとに、scale() 関数でx軸方向に1.4倍、y軸方向に0.5倍、拡大しています。
.box img{ transform: translate(50px, 50px) scale(1.4,0.5); }
以下の例では、画像をtranslate() 関数で移動したあとに、skew() 関数でx軸方向に20度、y軸方向に5度傾斜させています。
.box img{ transform: translate(50px, 50px) skew(20deg,5deg); }