CSSのtransition
は『all』と書く人も多いかも知れませんが、それだと予期せぬ場所で影響が出ることがあります。
なのでtransition
のプロパティは指定した書き方がおすすめですが、複数ある場合はどう書いていいか分からない人もいると思います。
そこで今回はtransition
のプロパティを複数指定する書き方を解説していきます。
CSSのtransitionにプロパティを複数指定する書き方
早速ですがこちらのデモをご覧下さい。
See the Pen
Untitled by junpei (@junpei-sugiyama)
on CodePen.
下のボタンをhoverすると上のボタンが変化します。
そして変化するのは以下の3つになります。
- background-color
- color
- transform:scale()
コード解説
それでは本題ですが、まず基本となるtransition
のショートハンドの書き方はこちらになります。
- transition-property:プロパティ名(初期値:all)
- transition-duration:アニメーションの開始から終了までの時間(初期値:0)
- transition-timing-function:アニメーションの仕方(初期値:ease)
- transition-delay:アニメーション開始を遅らせる時間(初期値:0)
そして上記の順番に書きます。例えば全部書いた場合は以下のようになります。
.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つ以上の場合でも書き方は変わりません。
あとは冒頭でも書いたように『all』にすると意図しない箇所で変な挙動をしたりバグのようになることがあるので、普段からプロパティを指定するクセを付けるようにしましょう。
実際『all』のせいでハンバーガーメニューで変な挙動をしたり、スライドショーのライブラリでもバグのようになったことがあります。
以上になります。