はじめに
「transformは何ができるのか」
「transformはどんな時に使うのか」
ということについて書いていきたいと思います。
transform自体を使ったことがない人も多いと思いますが、
Webデザインをしていく中で必ず目にすることになると思います。
そんなtransformについてまとめていきたいと思います。
transformについて
transformを使用することによって、デザインに移動、回転、伸縮、傾斜の効果をつけることができます。二次元的な動きだけではなく、三次元的な動きにも対応しています。
transformの種類
transformには4つの関数が用意されています。
- translate() 「移動」
- rotate() 「回転」
- scale() 「伸縮」
- skew() 「傾斜」
transformの使い方
それぞれの関数にX,Y,Z,3Dが用意されています。
translateX()
のように()の前にX,Y,Z,3Dを記入することでその軸に対して関数を使用することができます。
また、translate(X,Y,Z)
のように記入してもそれぞれの軸に対して関数を使用することができます。
<div class="transform">Transform<div>
.transform{
padding: 10px 20px;
background: #59b1eb;
text-align: center;
color: #fff;
width: 30%;
}
このhtml,cssに対して、transformを使用していきたいと思います。
わかりやすくするために:hover
,transition
を使用していきたいと思います。
hoverはカーソルを要素に置いた時に適用されるようにする要素です。
transitionはtransformを適用するにあたり、開始から終了までの時間を決めることができます。
translate
translateは要素に移動の効果を追加することができます。
.transform{
padding: 10px 20px;
background: #59b1eb;
text-align: center;
color: #fff;
width: 30%;
transition: 1s;
}
.transform:hover{
transform: translate(20px,20px)
}
.transform
にtransition: 1s;
を追加し
.transform:hover{ transform: translate(20px,20px) }
を新たに追加しました。
動きを確認してみてください。
X軸方向に20px、Y軸方向に20px動くのが確認できたかと思います。
rotate
rotateは要素に回転の効果を追加することができます。
.transform:hover{
transform: rotateX(360deg)
}
rotateを使用する場合px
ではなくdegree「度」を表す
deg
を使用します。
このコードの場合X軸に対して360度回転します。確認してみてください。
.transform:hover{
transform: rotateY(360deg)
}
この場合Y軸に対して回転するのが確認できるかと思います。
scale
scaleは要素に伸縮の効果を追加することができます。
.transform:hover{
transform: scale(1.5,1.5)
}
値にはpx
もdeg
も使用しません。
1.5と書けば要素の1.5倍、2.0と書けば要素の2倍になります。また、-2.0と書けば要素の1/2倍になります。
このコードではX軸、Y軸共に1.5倍になるのが確認できると思います。
skew
skewは要素に傾斜を持たせることができます。
他の要素と異なり、X軸Y軸に対してしか使用できない特徴があります。また、値にはdeg
を使用します。
.transform:hover{
transform: skew(30deg,30deg)
}
他の要素と異なり、X軸Y軸に対してしか使用できない特徴があります。また、値にはdeg
を使用します。
transform-originについて
transform-origin
を使用することによって、要素の変化の基準点を設けることができます。
.translate:hover{
transform: rotate(45deg);
transform-origin: top left;
}
基準点の設定方法ですが、
- 絶対指定(px)
- 相対指定(%)
- 位置指定(top, center,left等)
の3つがあります。
ざっくりで良いなら位置指定、細かく決めたいなら絶対指定、相対指定を使用するという風に分けたら良いと思います。
まとめ
transformはマスターするとWebデザインの幅がとても広がります。
基礎的な使用方法でも十分幅が広まります。
ぜひマスターしましょう。