translate()移動
translate(x, y)で、要素を元の位置から横方向・縦方向へ見た目上移動します。
要素の通常の配置を保ったまま、見た目を移動・回転・拡大縮小するプロパティ。元の位置と変形後を重ねて比べられます。
.element transform: translate(28px, -12px) rotate(8deg) scale(1.1);
値のパターン
translate()translate(x, y)で、要素を元の位置から横方向・縦方向へ見た目上移動します。
rotate()正の角度で時計回り、負の角度で反時計回りに、既定では要素の中心を軸に回転します。
scale()1を基準に、1より大きい値で拡大し、0から1の値で縮小します。
初期値はnoneです。変形関数は空白で並べられ、書いた順序によって最終的な見た目が変わります。
none変形しない初期値translateX(24px)右へ24px移動移動translate(12px, -8px)右と上へ移動2軸rotate(15deg)時計回りに15度回転回転scale(1.2)縦横を1.2倍に拡大拡大skewX(10deg)横方向へ10度傾ける傾斜translateX(24px) rotate(8deg)移動と回転を組み合わせる組み合わせポインターやキーボードのフォーカスに合わせ、位置を少し上へ動かして操作状態を伝えます。
.button:hover, .button:focus-visible { transform: translateY(-2px); }開閉状態に合わせて矢印を回転させると、内容が開いているかを形でも示せます。
.details[open] .icon { transform: rotate(180deg); }レイアウトを押し広げずにカードを少し拡大し、選択中の項目を目立たせます。
.card.is-active { transform: scale(1.04); }ポイント
transform: translateX(40px) rotate(20deg) と rotate(20deg) translateX(40px) では、移動に使う軸も回転するため結果が異なります。transformは通常の文書フローを組み直さず、元の配置領域を残したまま見た目を変えます。none以外では重ね合わせコンテキストが作られるため、重なり順にも注意します。変形可能な要素へ適用され、子要素へ継承されません。大きな動きや拡大をtransition・animationと組み合わせるときは、動きを減らす設定にも配慮します。
transform と一緒に使われるプロパティや、詳しい外部リファレンスをまとめました。