
久しぶりにコーディングをしている際の復習ページを書いてみます!
今回は、
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構築を学ぶ!
最後まで読んでいただきありがとうございました!
広告
もんちゃんブログ 
