ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
transform プロパティとは
transform は CSS で要素を変形(移動・回転・拡大縮小・傾斜)させるためのプロパティです。レイアウトを再計算せず合成(compositing)レイヤーで処理されるため、アニメーションのパフォーマンスが非常に良好です。
基本構文
.box {
transform: translate(50px, 20px); /* x, y 移動 */
transform: rotate(45deg); /* 回転 */
transform: scale(1.5); /* 拡大 */
transform: skew(20deg, 0); /* 傾斜 */
}
/* 複数指定は左から順に適用される */
.combo {
transform: translate(50px, 0) rotate(30deg) scale(1.2);
}
2D 変形関数
| 関数 | 意味 | 例 |
|---|---|---|
translate(x, y) | x, y 方向に移動 | translate(20px, 30px) |
translateX(x) / translateY(y) | 個別に移動 | translateX(50%) |
rotate(angle) | 回転(deg / rad / turn) | rotate(0.25turn) |
scale(s) / scale(sx, sy) | 拡大縮小 | scale(0.8) |
scaleX(s) / scaleY(s) | 個別に拡大縮小 | scaleX(-1)(鏡像) |
skew(ax, ay) | 傾斜 | skew(15deg, 0) |
matrix(a,b,c,d,e,f) | 2D 変形行列直接指定 | 低レベル指定 |
3D 変形関数
| 関数 | 意味 |
|---|---|
translate3d(x, y, z) | 3 軸方向に移動 |
rotateX/Y/Z(angle) | 各軸まわりに回転 |
rotate3d(x, y, z, angle) | 任意軸まわりに回転 |
scale3d(sx, sy, sz) | 3 軸スケーリング |
perspective(d) | 視点距離 — 3D 効果の強さ |
matrix3d(...16値) | 3D 変形行列直接指定 |
/* カードを Y 軸でめくる */
.card {
perspective: 1000px;
}
.card-inner {
transition: transform 0.6s;
transform-style: preserve-3d;
}
.card:hover .card-inner {
transform: rotateY(180deg);
}
適用順序に注意
複数の変形関数を並べた場合、左から順に合成されます。translate → rotate と rotate → translate は結果が違います。
/* 「右に50px動かしてから45度回転」 */
.a { transform: translate(50px, 0) rotate(45deg); }
/* 「45度回転してから右に50px動かす」(回転後の右方向に移動) */
.b { transform: rotate(45deg) translate(50px, 0); }
transform-origin(変形の中心)
既定では要素の中央を基準に変形します。transform-origin で基準点を変えられます。
.box {
transform-origin: left top; /* 左上を基準に回転 */
transform: rotate(45deg);
}
.box2 {
transform-origin: 0 100%; /* 左下 */
transform: scale(2);
}
/* 3D の場合 z 座標も */
.box3 {
transform-origin: 50% 50% 100px;
}
パフォーマンスと GPU 合成
transform はブラウザのコンポジタスレッドで処理され、再レイアウト(reflow)・再描画(repaint)を引き起こしません。これにより 60fps の滑らかなアニメーションが実現できます。
| アニメ手段 | レイアウト | 描画 | 合成 | 速度 |
|---|---|---|---|---|
left / top | ○ | ○ | ○ | 遅い |
width / height | ○ | ○ | ○ | 遅い |
transform / opacity | × | × | ○ | 速い |
位置の移動もtop: 100px ではなく transform: translateY(100px) を使うほうが GPU 合成に乗ります。さらに will-change: transform を指定すると、ブラウザに事前にレイヤー生成を促せます(過度な指定はメモリを食うので注意)。
transition / animation との組み合わせ
/* hover で拡大 */
.btn {
transition: transform 0.2s ease-out;
}
.btn:hover {
transform: scale(1.05);
}
/* @keyframes で揺らす */
@keyframes shake {
0%, 100% { transform: translateX(0); }
25% { transform: translateX(-5px); }
75% { transform: translateX(5px); }
}
.shake { animation: shake 0.3s linear; }
よく使う実例
| 用途 | 指定例 |
|---|---|
| 中央寄せ(絶対配置) | top:50%; left:50%; transform:translate(-50%,-50%); |
| 画像鏡像 | transform: scaleX(-1); |
| 180° 反転 | transform: rotate(180deg); |
| ホバー浮き上がり | transform: translateY(-4px); |
| ローディングスピナ | animation: spin 1s linear infinite; |
注意点
transformはインライン要素には効かない。display: inline-block/block/flex等にする- 固定位置 (
position: fixed) の祖先に transform を指定すると、子のfixedはその transform 要素を基準にしてしまう(仕様) - テキストを
scale拡大するとぼやける(ラスタライズ後にスケール)— 重要文字はfont-sizeで指定 - 過度な
will-changeはメモリ消費増。必要な要素にだけ
関連
- トランスフォーム — 親カテゴリ
- animationプロパティ
- transition プロパティ
- transform-origin / perspective / transform-style
- will-change — GPU 合成ヒント
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- transformプロパティ
- transform-originプロパティ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?