transformを使うことがちょくちょくあるので、使い方を少し調べてみました。
対応ブラウザ
transformが対応しているブラウザはこちら。
IE9からの対応になります。
また、Safari向けに-webkit-のベンダープレフィックスが必要なようです。
transform-origin
変形の軸をどこにするのかを指定します。
値が2つの場合はそれぞれX,Y座標を指定、1つの場合はX座標を指定でY座標はcenterになります。
指定は0~100%の値かleft, center, right, top, bottomで行い、指定がない場合は要素の中心になります。
transform: translate()
translateは要素を移動できます。
値が1つの場合はX座標、2つの場合はそれぞれX座標とY座標の移動位置になります。
X,Yいずれかの方向のみに移動させる場合、translateXやtranslateYでも指定できます。
HTML
<div class="box" id="base">基点</div> <div class="box" id="translate1">transform: translate(150px);</div> <div class="box" id="translate2">transform: translate(-80px, 120px);</div> <div class="box" id="translate3">transform: translateX(400px);</div> <div class="box" id="translate4">transform: translateY(300px);</div>
CSS
.box {
position: absolute;
top: 100px;
left: 100px;
width: 200px;
height: 120px;
padding-top: 70px;
text-align: center;
opacity: 0.7;
}
#base {
z-index: -1;
background: #cccccc;
}
#translate1 {
background: red;
-webkit-transform: translate(150px);
transform: translate(150px);
}
#translate2 {
background: blue;
-webkit-transform: translate(-80px, 120px);
transform: translate(-80px, 120px);
}
#translate3 {
background: green;
-webkit-transform: translateX(400px);
transform: translateX(400px);
}
#translate4 {
background: orange;
-webkit-transform: translateY(300px);
transform: translateY(300px);
}
transform: scale()
scaleは要素を拡大・縮小できます。
基本的に軸は要素の中心になりますが、transform-originを指定することで軸を中心以外に設定できます。
HTML
<div class="box" id="base">基点</div> <div class="box" id="scale1">transform: scale(1.5); transform-origin: 0 0;</div> <div class="box" id="scale2">transform: scale(1.5); transform-origin: 100% 100%;</div>
CSS
.box {
position: absolute;
top: 100px;
left: 100px;
width: 200px;
height: 120px;
padding-top: 70px;
text-align: center;
opacity: 0.7;
}
#base {
z-index: -1;
background: #cccccc;
}
#scale1 {
background: red;
-webkit-transform: scale(1.5);
transform: scale(1.5);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
#scale2 {
background: blue;
-webkit-transform: scale(1.5);
transform: scale(1.5);
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
}
transform: rotate()
rotateは要素を回転できます。
基本的に軸は要素の中心になりますが、transform-originを指定することで軸を中心以外に設定できます。
HTML
<div class="box" id="base">基点</div> <div class="box" id="rotate1">transform: rotate(30deg);</div> <div class="box" id="rotate2">transform: rotate(-60deg); transform-origin: 0 0;</div> <div class="box" id="rotate3">transform: rotate(495deg); transform-origin: 100% 100%;</div>
CSS
.box {
position: absolute;
top: 100px;
left: 100px;
width: 200px;
height: 120px;
padding-top: 70px;
text-align: center;
opacity: 0.7;
}
#base {
z-index: -1;
background: #cccccc;
}
#rotate1 {
background: red;
-webkit-transform: rotate(30deg);
transform: rotate(30deg);
}
#rotate2 {
background: blue;
-webkit-transform: rotate(-60deg);
transform: rotate(-60deg);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
#rotate3 {
background: green;
-webkit-transform: rotate(495deg);
transform: rotate(495deg);
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
}
transform: skew()
skewは要素をゆがませることができます。
基本的に軸は要素の中心になりますが、transform-originを指定することで軸を中心以外に設定できます。
HTML
<div class="box" id="base">基点</div> <div class="box" id="skew1">transform: skew(30deg, 10deg);</div> <div class="box" id="skew2">transform: skew(45deg); transform-origin: 0 0;</div> <div class="box" id="skew3">transform: skewX(-70deg); transform-origin: 100% 100%;</div> <div class="box" id="skew4">transform: skewY(-60deg); transform-origin: 100% 0;</div>
CSS
.box {
position: absolute;
top: 100px;
left: 100px;
width: 200px;
height: 120px;
padding-top: 70px;
text-align: center;
opacity: 0.7;
}
#base {
z-index: -1;
background: #cccccc;
}
#skew1 {
background: red;
-webkit-transform: skew(30deg, 10deg);
transform: skew(30deg, 10deg);
}
#skew2 {
background: blue;
-webkit-transform: skew(45deg);
transform: skew(45deg);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}
#skew3 {
background: green;
-webkit-transform: skewX(-70deg);
transform: skewX(-70deg);
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
}
#skew4 {
background: orange;
-webkit-transform: skewY(-60deg);
transform: skewY(-60deg);
-webkit-transform-origin: 100% 0;
transform-origin: 100% 0;
}
【参考サイト】
- CSS3 変形処理を行う transform プロパティ | CSS Lecture
- transform-CSS3リファレンス
- Can I use… Support tables for HTML5, CSS3, etc

コメントが承認されるまで時間がかかります。