VIDEO LESSON
CSSのtransition-propertyの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画
再生時間 6:03動画を別のタブで開く ↗
動画の字幕・文字起こしを読む
再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。
- 0:00こんにちは。
- 0:00シーエスエス、リファレンス解説です。
- 0:03今回のテーマは、トランジション・プロパティです。
- 0:07前回は、変化にかける時間、デュレーションを取り上げました。
- 0:11今回はその土台になる、「どのプロパティを変化の対象にするか」を決める指定です。
- 0:17ボタンの色と位置が一緒にゆっくり変わるのか、色だけが変わって位置はパッと切り替わるのか。
- 0:23その分かれ道を決めるのが、このプロパティです。
- 0:26対象の決め方が分かると、これまでの一括指定のコードも読み解きやすくなります。
- 0:32順番に見ていきましょう。
- 0:34位置づけを確認します。
- 0:35トランジションには、対象を決めるプロパティ、時間を決めるデュレーション、
- 0:42進み方を決めるタイミング・ファンクション、待ち時間を決めるディレイの四つの担当がありました。
- 0:48今回のプロパティは、その筆頭、「対象」の担当です。
- 0:52一括指定のトランジションでは、それぞれのまとまりの最初に書いたプロパティ名が、
- 0:56この担当分にあたります。
- 1:00対象を増やしたり減らしたりしたいときは、この部分を書き換えるのが確実です。
- 1:05時間や進み方は、対象が決まってはじめて意味を持つ、という順番も意識しておきましょう。
- 1:12書き方を見てみましょう。
- 1:13セレクターで要素を選び、トランジション・プロパティに、対象にしたいプロパティの名前を書きます。
- 1:20背景色と位置の両方を対象にしたいなら、背景色を表すバックグラウンド・カラーと、
- 1:24移動を表すトランスフォームを、カンマで区切って並べます。
- 1:29書くのは、色や大きさのような値ではなく、変化させたいプロパティの名前そのものです。
- 1:35このあとの例でも、この二つを対象にした状態から始めます。
- 1:39名前の代わりに書ける、特別な値も確認します。
- 1:42オールは、値が変わるすべてのプロパティを対象にする指定です。
- 1:46ナンは、どのプロパティも対象にしません。
- 1:48オールは手軽ですが、注意点もあります。
- 1:51自分では変えるつもりのなかったプロパティまで、いつの間にか滑らかに動き始めてしまうことがあるのです。
- 1:57特に、レイアウトに関わるプロパティが意図せず動くと、表示が崩れて見える原因にもなります。
- 2:03そのため記事では、対象を名前で絞って書くことを勧めています。
- 2:07まずは対象を明示する書き方に慣れていきましょう。
- 2:10初期値と継承を確認します。
- 2:12このプロパティの初期値はオールです。
- 2:15つまり、何も書かなくても、すべてのプロパティが変化の対象になっています。
- 2:20時間を決めるデュレーションさえ指定すれば、対象を書かなくても変化が滑らかに見えるのは、
- 2:24この初期値のおかげです。
- 2:29ただし継承はしません。
- 2:30親の要素に書いても、子の要素には効きません。
- 2:33対象をはっきり決めたいときは、変化させたい要素自身に、名前を書いて指定してください。
- 2:40記事の活用例を見てみましょう。
- 2:42薄い緑色のボタンが用意され、背景色と位置の変化に、四百ミリ秒のトランジションが指定されています。
- 2:50ホバー、またはキーボードのフォーカスが当たると、背景がオレンジ寄りの色になり、
- 2:55ボタンが少し上へ移動します。
- 2:59注目は最後の行、トランジション・プロパティです。
- 3:03対象として、背景色と位置の二つが並んでいます。
- 3:07この指定があるため、色の変化も、位置の変化も、両方とも四百ミリ秒かけて滑らかに進みます。
- 3:14ボタンの見た目の土台は上の行で作られ、変化のルールは下の行で決まる、という読み分けもポイントです。
- 3:23違いを確かめるには、最後の行の値を、背景色だけに置き換えます。
- 3:27変えるのは対象の一覧だけです。
- 3:30すると、背景色はこれまで通り、四百ミリ秒かけてゆっくり変わります。
- 3:34一方、対象から外れた位置の変化は、時間をかける相手がいなくなるため、その場でパッと切り替わります。
- 3:42同じホバー操作でも、動くものと動かないものが分かれるわけです。
- 3:46対象に挙げるかどうかが、そのまま「滑らかに変えるかどうか」の分かれ道になります。
- 3:52このプロパティが効くための条件を整理します。
- 3:55一つ目は、対象に挙げたプロパティの値が、ホバーやフォーカスなどで実際に変わることです。
- 4:01値が変わらなければ、変化そのものが始まりません。
- 4:05二つ目は、変化にかける時間、デュレーションが、ゼロより大きいことです。
- 4:10時間がゼロでは、対象に挙げていても即座に切り替わってしまいます。
- 4:14逆に、対象に挙げていないプロパティは、時間を長くしても滑らかにはなりません。
- 4:20対象と時間は、セットでそろえるものと覚えてください。
- 4:23配慮の指定も確認します。
- 4:25記事の例には、端末で「動きを減らす」設定が有効なとき、トランジション自体を止めるメディアクエリが含まれています。
- 4:33対象をいくら丁寧に選んでも、動きそのものが負担になる人がいるためです。
- 4:38対象や時間を調整できるからこそ、止めるという選択肢も、セットで用意しておきましょう。
- 4:44あわせて、ホバーだけでなく、キーボードのフォーカスが当たったときにも同じ変化が起きるかを、
- 4:48忘れずに確認してください。
- 4:53効かないときの確認です。
- 4:55まず、対象に挙げたプロパティの値が、操作に合わせて本当に変わっているかを見てください。
- 5:02次に、時間、デュレーションがゼロになっていないかを確認します。
- 5:07逆に、オールで対象を広げすぎて、意図しない要素まで動いているケースも、ここで見つけられます。
- 5:14開発者ツールでは、スタイルズで宣言が打ち消されていないか、コンピューテッドで最終的な対象の一覧を確認する順番が有効です。
- 5:24セレクターとクラスが一致しているかも、あわせて見直しましょう。
- 5:29ブラウザー互換性は良好です。
- 5:31プロパティ自体は、クローム、エッジ、ファイアフォックス、サファリのいずれも、
- 5:36かなり前のバージョンから接頭辞なしで使えます。
- 5:40まとめると、トランジション・プロパティは、滑らかに変える対象を選ぶ指定です。
- 5:46初期値はオール、継承はしません。
- 5:48練習として、背景色と位置の両方を対象にした場合と、背景色だけにした場合の違いを、
- 5:52自分の言葉で説明してみてください。
- 5:56次回は、回転や移動の基準点を決める、トランスフォーム・オリジンを取り上げます。
- 6:02お疲れさまでした。
この動画で学べること
transition-propertyの役割と主な指定値を解説。ホバーやフォーカスで色と位置の両方を動かすか、色だけを動かすかを比較します。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。
解説記事・サンプルコードを読む:CSSのtransition-propertyの使い方:指定値・実例・効かない原因とブラウザー互換性 →