久しぶりにコーディングをしている際の復習ページを書いてみます!
今回は、
hoverでふわっとグラデーションする2重ボーダーボタンの実装方法
をまとめていきます!
背景をグラデーションにした時にtransitionをかける方法
背景(back-ground)をグラデーション(background: linear-gradient ~)にした時にtransitionをかける方法をまとめていきます。
しかもボーダー2重のボタンに挑戦してみました!
↓サンプル↓
次に進む
<HTML>
<a class="nextBtn" href="#"> <span>次に進む</span> </a>
<CSS>
.nextBtn { //aタグ color: #fff; font-family: "FOT-筑紫A丸ゴシック Std", sans-serif; font-weight: bold; line-height: 1; display: block; width: 348px; height: 70px; border-radius: 8px; background: -webkit-gradient(linear, right top, left top, from(#F4BED6), to(#F4D080)); background: linear-gradient(to left, #F4BED6, #F4D080); position: relative; z-index: 0; -webkit-transition: .6s; transition: .6s; } .nextBtn::after { content: ""; width: 100%; height: 100%; position: absolute; z-index: -1; left: 0; top: 0; -webkit-transition: 0.5s; transition: 0.5s; background: #DBDBDB; z-index: 10; border-radius: 8px; } .nextBtn span { color: #fff; font-size: 30px; text-align: center; display: block; width: 338px; height: 60px; margin: 5px auto; padding: 15px 10px 20px; border: solid 2px #fff; border-radius: 8px; position: relative; z-index: 40; -webkit-transition: .6s; transition: .6s; } .nextBtn span::before { content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; -webkit-transition: 0.5s; transition: 0.5s; background: -webkit-gradient(linear, right top, left top, from(#F4BED6), to(#F4D080)); background: linear-gradient(to left, #F4BED6, #F4D080); z-index: -2; border-radius: 8px; } .nextBtn span::affter { content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; -webkit-transition: 0.5s; transition: 0.5s; background: #DBDBDB; z-index: -1; border-radius: 8px; } .nextBtn:hover::after { opacity: 0; } .nextBtn:hover span::after { opacity: 0; }
長い…( ̄∇ ̄)
そしてちょっと雑…笑
ポイントを解説していきます!
【おすすめ】UdemyでともすたさんのWordPress講座を学んでみる!!
2重ボーダーを作る
本来、ボーダーを2重にする際、
border:double;
outlineなどを使用すると簡単に2重のボーダーを作ることができます!
今回は、ホバーした時に背景をグラデーションにしたいと思ったため、少し面倒な実装を行ってみました。
aタグにはグレーの背景をつけ、spanにはボーダー付きの背景をつける!
spanはaタグより小さめのサイズにする!
画像で解説!
これで2重ボーダーが実装できました!!
ホバーで背景がふわっとグラデーションするボタン
やりたいこと
・ホバーをしたときにボタンの背景をグレーからグラデーションがかかった背景に変えたい!
→これだけだと、ホバーで背景色を変更にすればいいのですが…
・ホバー時はtransitionをかけて背景の色をふわっと変えたい!!
→ここが注目ポイントです!
ホバー時の背景色をグラデーションに指定しているとtransitionが効かないようです…( ̄∇ ̄)
ということで、擬似要素を使うことにしました。
・aタグ、spanタグそれぞれに擬似要素afterで最初のグレー背景の四角を作り重ねておく
・ホバーしたときに、afterを消すさらに!
・span内の文字が消えてしまうため、spanには擬似要素afterで最初の背景色グレー作る
・spanの擬似要素beforeでホバー後のグラデーションの背景を作る
・span(文字) > span::after(グレー背景) > span::before(グラデーション)の重なり順にする!
画像で解説!
いかがでしょうか?(*´∇`*)
今回は画像付きで解説してみました!
コーディングの復習がてらXDの使い方も学べて一石二鳥でした笑
おまけ
【おすすめ】UdemyでともすたさんのWordPress講座を学んでみる!!
https://px.a8.net/svt/ejp?a8mat=3NCUT5+C7DX82+3L4M+BW0YB&a8ejpredirect=https%3A%2F%2Fwww.udemy.com%2Fcourse%2Fwordpress_master%2F
Shopify構築を学んで、Web制作の単価を上げませんか?
リキマスでShopify構築を学ぶ!
最後まで読んでいただきありがとうございました!
広告