
例えばボタンの背景色をグラデーションにしていて、hover時にはグラデーションを反転させたいとします。
普通に反転させるだけなら問題ないのですが、transitionを使ってじんわり変化させようとすると上手くいきません。
これはbackground-imageにはtransitionが効かないのが原因で、今回はその対処方法について書いていきます。
効率よくコーディングしたい人はこちら
background-imageはtransitionが効かない
まずはbackground-imageでグラデーションにした場合で見てみましょう。
See the Pen
ボタン(background-image) by junpei (@junpei-sugiyama)
on CodePen.
文字色はtransitionが効いていますが、background-imageにした背景のグラデーションには効いていないのが分かります。
このグラデーションもじんわり変化させたい時は、擬似要素を使います。
background-colorはtransitionが効く
今度はbackground-colorの場合を見てみましょう(コードを見るには左上のHTML、CSSをクリックして下さい)
See the Pen
ボタン(background-color) by junpei (@junpei-sugiyama)
on CodePen.
background-colorの背景色と、colorの文字色はtransitionが効いてじんわり変化しているのが分かります。
擬似要素とopacityを使う
擬似要素を使ってもbackground-imageにはtransitionが効かない事には変わりないので、代わりに透過度を変化させるopacityを使って再現してみます。
See the Pen
ボタン(グラデーション) by junpei (@junpei-sugiyama)
on CodePen.
文字色は先ほどまでと同じように変化させています。
またテキストと背景色の上下関係を意識しないとテキストが背景色の後ろに隠れてしまうので、ここではspanタグで囲っています(spanタグを使わない場合はz-indexをマイナスにしたりする必要があります)
以上です。
Brainランキング1位獲得 & 3日で500部突破 クチコミ約300件 今だけ!5つの無料特典あり🎁 👇画像をクリック
コーディング案件の単価と作業効率を上げる!
(平均スコア)