VIDEO LESSON

CSSのtransformの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画

再生時間 7:44動画を別のタブで開く ↗
動画の字幕・文字起こしを読む

再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。

  1. 0:00こんにちは。
  2. 0:01シーエスエス、リファレンス解説です。
  3. 0:04今回のテーマは、トランスフォームです。
  4. 0:07前回は、変形の基準点を決めるトランスフォーム・オリジンを見ました。
  5. 0:13今回は、その変形そのものを指定するトランスフォーム本体を取り上げます。
  6. 0:19トランスフォームは、要素を移動させたり、回したり、大きくしたり、傾けたりするための指定です。
  7. 0:27大きな特徴は、見た目だけが変わって、レイアウト上の占有領域は元のまま、という点です。
  8. 0:34このあと、主な関数の書き方、組み合わせる順番の注意、実例での比較、そして効かないときの調べ方まで、
  9. 0:40順番に確認していきます。
  10. 0:45書き方を確認します。
  11. 0:47トランスフォームには、行いたい変形を「関数」という形で書きます。
  12. 0:52関数は、変形の種類と量をセットにした書き方で、半角スペースで区切れば複数を並べられます。
  13. 0:59たとえば、トランスレイト・ワイにマイナス、ゼロ点五レム、ローテートにマイナス三度と書くと、
  14. 1:06「少し上へ移動して、三度傾ける」という二つの変形が一度に適用されます。
  15. 1:12プロパティ名の後ろにコロン、値の最後にセミコロンを書く、という宣言の基本はこれまでと同じです。
  16. 1:20変形は、前回学んだトランスフォーム・オリジンの基準点を軸に行われます。
  17. 1:26主な関数を、移動と回転から見ていきます。
  18. 1:29移動はトランスレイトです。
  19. 1:31トランスレイト・エックスは横方向、トランスレイト・ワイは縦方向への移動で、
  20. 1:36ピクセルやレムなどの長さで量を指定します。
  21. 1:41トランスレイトに二つの値を書けば、横と縦をまとめて指定できます。
  22. 1:46マイナスの値を書くと、左や上といった反対方向へ動きます。
  23. 1:51パーセントで指定した場合は、要素自身の大きさに対する割合になります。
  24. 1:57回転はローテートで、単位はデグ、つまり度です。
  25. 2:01プラスの値で時計回り、マイナスで反時計回りに回ります。
  26. 2:05ホバーでカードを少し浮かせたり、バッジを少し傾けたりする演出で、よく使われる組み合わせです。
  27. 2:13次に、拡大と傾けです。
  28. 2:15拡大縮小はスケールで、単位のない数値で倍率を指定します。
  29. 2:20一なら元の大きさ、一・二なら一・二倍への拡大、ゼロ・八なら少しの縮小です。
  30. 2:27スケール・エックス、スケール・ワイを使えば、横と縦を別々に変えることもできます。
  31. 2:34傾けはスキューで、角度を指定して要素を平行四辺形のようにゆがませます。
  32. 2:41見出しの装飾で斜めの帯を作るときなどに使われます。
  33. 2:46これらの関数は自由に組み合わせられますが、何種類も重ねると意図しない形になりやすいので、
  34. 2:52最初は一つか二つから試すのがおすすめです。
  35. 2:58初期値と継承を確認します。
  36. 2:59トランスフォームの初期値はノーンで、「変形しない」という意味です。
  37. 3:04あとで見る実例でも、ノーンに書き換えると要素は通常の表示に戻ります。
  38. 3:09そして、このプロパティは親から子へ継承しません。
  39. 3:13親に変形を設定しても、子が自動的に同じ変形を受けることはありません。
  40. 3:18ただし見た目の上では、親が動けば、その中身も一緒に動いて見えます。
  41. 3:22あくまで「指定が伝わるわけではない」という区別を押さえてください。
  42. 3:27変形をやめたいときは、宣言自体を消すか、ノーンに戻すのが確実です。
  43. 3:32ここからは、ブラウザーで比べられる実例で確認します。
  44. 3:36エイチティーエムエルでは、ステージという親要素の中に、デモという箱を一つ置きます。
  45. 3:42文章が入った箱です。
  46. 3:43スタイルシートでは、まず土台を整えます。
  47. 3:46ステージに最大幅と余白を持たせ、デモには内側の余白、緑色の枠線、薄い背景色を付けます。
  48. 3:53これは違いを見やすくするための準備で、今回の主役ではありません。
  49. 3:57主役は、このあとデモに追加するトランスフォームです。
  50. 4:01同じ箱で、変形ありと変形なしを見比べていきましょう。
  51. 4:05ファイルを保存して、ブラウザーで一度表示を確認してから次へ進んでください。
  52. 4:11実例の本題です。
  53. 4:12デモに、トランスレイト・ワイでマイナス、ゼロ点五レム、ローテートでマイナス三度、
  54. 4:16という指定を書きます。
  55. 4:20ブラウザーで見ると、箱が少し上へ浮き上がり、反時計回りに三度傾いた状態になります。
  56. 4:26ここで注目してほしいのは、箱の「元の場所」です。
  57. 4:30まわりの要素の配置は一切動きません。
  58. 4:33トランスフォームは占有領域を元のまま保つので、見た目だけがはみ出した形になります。
  59. 4:39カードにホバーしたとき少し浮かせる、といった演出に向いているのはこのためです。
  60. 4:45逆に、変形で隣と重なってしまう場合があることも覚えておきましょう。
  61. 4:51次に、値をノーンに置き換えて比較します。
  62. 4:54箱は傾きも浮き上がりもなくなり、通常の表示に戻ります。
  63. 4:58変形前と変形後を並べることで、トランスフォームが「見た目だけを変える指定」であることがはっきりします。
  64. 5:07もう一つ試してほしいのが、関数の並び順です。
  65. 5:10移動してから回す書き方と、回してから移動する書き方では、結果が少し変わります。
  66. 5:17回転したあとの移動は、傾いた軸に沿って行われるためです。
  67. 5:21思った位置に来ないときは、量だけでなく順番も見直してみてください。
  68. 5:27効かないときの確認方法です。
  69. 5:29いちばん多い原因は、対象がインライン要素であることです。
  70. 5:34スパンやエー要素のようなインライン要素には、トランスフォームが適用されません。
  71. 5:40ディスプレイをブロック、またはインライン・ブロックに変えると効くようになります。
  72. 5:47次に開発者ツールで順番に調べます。
  73. 5:50スタイルズで宣言に打ち消し線が付いていないか、別の宣言に上書きされていないかを見て、
  74. 5:55コンピューテッドで最終的な値を確認します。
  75. 6:00また、占有領域は元のままなので、変形した要素が隣と重なったり、重なりの順序が変わったりすることがあります。
  76. 6:09見た目が崩れたときは、この性質も疑ってみてください。
  77. 6:13ブラウザー互換性を確認します。
  78. 6:16トランスフォームは、クローム三十六以降、エッジ十二以降、ファイアーフォックス十六以降、
  79. 6:21サファリ九以降と、主要なブラウザーで古くから使えます。
  80. 6:26この記事が参照しているエムディーエヌの互換性データでも、接頭辞なしの標準の指定が広くそろっています。
  81. 6:33日常の制作で互換性を心配する必要は、ほとんどありません。
  82. 6:38ただし、プロパティが使えることと、すべての値や構文が使えることは別です。
  83. 6:43三次元方向の変形など新しい書き方を使う場合は、対象のブラウザーで改めて確認してください。
  84. 6:49値の種類によって対応の始まった時期が違うこともあります。
  85. 6:53最後に練習とまとめです。
  86. 6:56まず、トランスレイト・ワイとローテートの指定と、ノーンの違いを、自分の言葉で説明してみてください。
  87. 7:04次に、角度や移動量を一つずつ変えて、結果がどう変わるかを比べてみましょう。
  88. 7:10一度に複数を変えるより、一つずつのほうが原因と結果を追いやすくなります。
  89. 7:16応用として、以前学んだトランジションと組み合わせると、変形が滑らかにアニメーションします。
  90. 7:24今日のポイントは、トランスフォームは見た目だけを変えること、関数の順番で結果が変わること、
  91. 7:30インライン要素には効かないこと、の三つです。
  92. 7:36次回は、スクロールの動きを整えるスクロール・ビヘイビアを取り上げます。
  93. 7:42おつかれさまでした。
日本語字幕をダウンロード(WebVTT)

この動画で学べること

transformの役割と主な指定値を解説。箱を少し上へ移動して傾けた状態と通常状態を比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。

解説記事・サンプルコードを読む:CSSのtransformの使い方:指定値・実例・効かない原因とブラウザー互換性 →