コーディング Web制作 CSS

【CSS】background-imageでtransitionが効かない時の対処法

【CSS】background-imageでtransitionが効かない時の対処法
hoverでグラデーションの色をtransition使ってじんわり変化させたいけど上手くいかない??

例えばボタンの背景色をグラデーションにしていて、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つの無料特典あり🎁

👇画像をクリック

  • この記事を書いた人

じゅんぺい

タイ・バンコク在住のWeb制作フリーランス兼ブロガー▶︎37歳からWeb制作を開始▶︎コーディングとWordPressのオリジナルテーマ制作でこれまで80件以上納品▶︎Web制作中心の当ブログは月7万PV▶︎コーディングとWordPressのコンテンツを販売し、3日で500部突破&250万円&人気1位獲得。

-コーディング, Web制作, CSS