CSSのtransition
は、『all』と書く人も多いかも知れませんが、それだと予期せぬ場所で影響が出ることがあります。
なので、transition
のプロパティは個別に指定した書き方がおすすめですが、複数ある場合はどう書いていいか分からない人もいると思います。
そこで今回は、transition
のプロパティを複数指定する書き方を解説していきます。
(有料になっていたらすいません🙇♂️)
CSSのtransitionにプロパティを複数指定する書き方
早速ですが、こちらのサンプル(デモ)をご覧下さい。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
下のボタンをhoverすると、上のボタンが変化します。
そして変化するのは、以下の3つのプロパティになります。
- background-color
- color
- transform:scale()
CSSのコード
それでは本題ですが、まず基本となるtransition
のショートハンドの書き方はこちらになります。
- transition-property: プロパティ名(初期値:all)
- transition-duration: アニメーションの開始から終了までの時間(初期値:0)
- transition-timing-function: アニメーションの仕方(初期値:ease)
- transition-delay: アニメーション開始を遅らせる時間(初期値:0)
そして、上記の順番に書きます。
例えば、全部書いた場合のCSSの書き方は、以下のようになります。
.sample {
transition: color 1s ease-in 2s;
}
全部書く必要はなく、以下のように省略することも出来ます。
.sample01 {
transition: 1s;
}
.sample02 {
transition: color 1s;
}
そして、ここまでは1つのプロパティの書き方なので、複数書く場合は以下のように書きます。
.sample {
transition: color 1s, background-color 1s;
}
通常の書き方に、『 , 』とカンマで区切ればOKです。
あとは上記のように、時間が同じでも省略せずに書きましょう(それぞれのプロパティに対する設定なので)。
そして今回のサンプル(デモ)の場合はプロパティが3つあり、以下のようになります。
transition: background-color .4s, transform .4s, color .4s;
このように2つ以上の場合でも、書き方は変わりません。
まとめ
今回は、CSSのtransition
プロパティを複数指定する書き方を解説しました。
冒頭でも書いたように、『all』にすると意図しない箇所で変な挙動をしたりバグのようになることがあるので、普段からプロパティを指定するクセを付けるようにしましょう。
実際、『all』と書いたせいでハンバーガーメニューで変な挙動をしたり、スライドショーのライブラリでもバグのようになったことがあります。
以上になります。