0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【CSS】ホバーでボタンの背景にグラデーションをかける方法

Posted at

CSSでbackgroundにグラデーションをかけるには、ちょっとした仕掛けが必要です。

こちらを参考にしたのですが、グラデーションがかかった状態から別色のグラデーションへの変化しか解説がなかったので、無色からグラデーションへの変化をメモとして残しておきます。

参考
https://www.tsukimi.net/css_gradient_hover_animation.html

<a href="" class="hvr-bg-gradient">button</a>

ボタンはいい感じにつくってください。
z-index、display: block、position: relativeが設定されていればOKです。

.hvr-bg-gradient{
  z-index:0;
  display: block;
  position: relative;
}
.hvr-bg-gradient:before{
  content: "";
  width: 100%;
  height: 100%;
  background:rgba(0,0,0,0)!important;
  z-index: -1;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 1.25rem!important;
}
.hvr-bg-gradient:after{
  content: "";
  width: 101%;
  height: 100%;
  background: linear-gradient( to right,  rgba(16, 129, 246,0.4) 0%, rgba(254, 189, 231, 0.4))!important;
  z-index: -2;
  position: absolute;
  left: 0;
  top: 0;
  border-radius: 1.25rem!important;
  opacity: 0;
  transition: 0.5s;
}
.hvr-bg-gradient:hover:before{
  opacity: 0;
}
.hvr-bg-gradient:hover:after{
  opacity: 1;
}

基本的には参考サイトと同じようにz-indexで層を作ってhoverでopacityを変化させます。
違うのはbeforeの色をrgbaで透過させておくことと、after要素のopacityを変化させることです。

1から作ると何気に時間がかかりましたが、仕組みを理解すると簡単ですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?