この記事では時間的変化を指定するCSSのtransition
に関連するプロパティについて解説します。
Contents
transitionとは?
時間的変化を一括指定できるショートハンドです。プロパティの値は順不同で半角スペース区切りで指定でき、transition-duration
(変化の時間)以外は省略して書く事も出来ます。
省略した値はそのプロパティのデフォルト値が適用されます。transition-property
(適用プロパティ名)を省略すると、指定されているすべての値に対して時間的変化が設定されます。
CSS
transition: 適用プロパティ名 変化の時間 変化の仕方 変化までの時間; transition: color 0.5s ease-in-out 0s;
transiton
を定義した要素に対してhover
時の値を設定することで、アニメーションしながら値を変化させます。
transitionプロパティ詳細
transition
で使用するプロパティは以下の通りです。
- transition-property
- transition-duration
- transition-timing-function
- transition-delay
transition-property
transition
効果を適用するプロパティ(background-color
など)を指定します。
transition-property
に指定できる値は以下の通りです。
値 | 説明 |
---|---|
all | デフォルト。すべてのプロパティに適用 |
none | 変化しない |
プロパティ名 | 効果を適用するプロパティを指定。カンマ(,)区切りで複数の指定が可能 |
実際に使用するときは以下のように記述します。
この場合「ホバーするとwidth
が250pxから300pxになる」と指定したことになります。
HTML
<div class="BOX"></div>
CSS
.BOX{ width:250px; height:250px; transition-property: width; } /*transitonの最終値は:hoverに書く*/ .BOX:hover{ width: 300px; }
transition-duration
durationとは日本語で「時間の期間」という意味で、transition
効果の開始から完了までにかかる時間を指定します。
transition-duration
に指定できる値は以下の通りです。
値 | 説明 |
---|---|
0s | デフォルト。瞬時に変化する |
○s | かかる時間を秒数で指定。1秒=1s |
実際に使用するときは以下のように記述します。
この場合「ホバーすると3秒かけてwidthが250pxから300pxになる」と指定したことになります。
HTML
<div class="BOX"></div>
CSS
.BOX{ width:250px; height:250px; transition-property: width; transition-duration: 3s; } /*transitonの最終値は:hoverに書く*/ .BOX:hover{ width: 300px; }
transition-timing-function
変化の仕方を指定します。
transition-timing-function
に指定できる値は以下の通りです。
値 | 説明 |
---|---|
ease | デフォルト。開始と完了が滑らか |
linear | 一定の速度で変化 |
ease-in | 変化がゆっくり始まる |
ease-out | 変化がゆっくり終わる |
ease-in-out | 変化がゆっくり始まってゆっくり終わる |
cubic-bezier(数値, 数値, 数値, 数値) | 変化の仕方を微調整する |
実際に使用するときは以下のように記述します。
HTML
<div class="BOX-A"></div> <div class="BOX-B"></div>
CSS
/* デフォルト */ .BOX-A{ width:250px; height:250px; transition-property: width; transition-duration: 3s; } .BOX-A:hover{ width: 300px; } /* ease-in(ゆっくり始まる) */ .BOX-B{ width:250px; height:250px; transition-property: width; transition-duration: 2s; transition-timing-function: ease-in; } .BOX-B:hover{ width: 300px; }
ease-in(変化がゆっくり始まる)
transition-delay
delayとは日本語で「遅らせる」という意味で、transition
効果が開始されるまでの待ち時間を指定します。
マイナスの値を指定すると、変化が完了した時点から開始します。transition-delay
に指定できる値は以下の通りです。
値 | 説明 |
---|---|
0s | デフォルト。瞬時に変化する |
○s | かかる時間を秒数で指定。1秒=1s |
実際に使用するときは以下のように記述します。
この場合、「ホバーまで2秒待機してからwidthが250pxから300pxになるよ」と指定したことになります。
HTML
<div class="BOX-A"></div> <div class="BOX-B"></div>
CSS
/* デフォルト */ .BOX-A{ width:250px; height:250px; transition-property: width; } .BOX-A:hover{ width: 300px; } /* 2秒後に開始 */ .BOX-B{ width:250px; height:250px; transition-property: width; transition-delay: 2s; } .BOX-B:hover{ width: 300px; }
2秒後に変化開始
まとめ
このプロパティは、要素の変化を指定するtransform
と一緒に使われる事が多いので、そちらも勉強するようにしましょう。
CSS関係の記事は他にも書いているので、宜しければそちらもチェックしてみてください。
-
【完全初心者向け】CSSについての超簡単まとめ
WEBサイトを作る上で、HTMLと並んで絶対に欠かせない言語といえばCSS。 この記事ではCSSについてなるべく難しい言葉を使わずに、でも要点は抑えて解説していこうと思います。是非肩の力を抜いて読み進 ...
-
【CSS入門】box-shadowで目指せ影マスター
この記事ではCSSのbox-shadowプロパティについて解説します。 Contentsbox-shadowとは?box-shadow詳細基本的な書き方影の色を指定影をぼかす影の広がりを調整影を内側に ...
-
【CSS入門】text-shadowで目指せ影マスター
この記事ではCSSのtext-shadowプロパティについて解説します。 Contentstext-shadowとは?text-shadow詳細基本的な書き方影の色を指定影をぼかすまとめ text-s ...
-
【CSS入門】linear-gradientで線形グラデーションを極めよう
この記事ではCSSのlinear-gradientプロパティについて解説します。 Contentslinear-gradientとは?linear-gradient詳細基本的な書き方方向を指定する角度 ...
-
【CSS入門】radial-gradientで円形グラデーションを極めよう
この記事ではCSSのradial-gradientプロパティについて解説します。 Contentsradial-gradientとは?radial-gradient詳細基本的な書き方形を指定するサイズ ...
-
【CSS入門】transformで要素を拡大縮小・回転・傾斜・移動しよう
この記事ではCSSのtransformプロパティについて解説します。 Contentstransformとは?transformの使い方scale()translate()rotate()skew() ...
-
【CSS入門】@keyframesとanimationで複雑なアニメーションを作ろう
この記事ではtransitionよりも複雑なアニメーションを指定できるCSSのanimationに関連するプロパティについて解説します。 Contentsanimationとは?@keyframesa ...