問題
2
CSSアニメーション
おしゃれなボタンアニメーションを作ろう
CSSアニメーションの問題に挑戦しよう!
問題
「おしゃれなボタンアニメーションを作ろう」
今回はおしゃれなボタンの作り方です。
擬似要素before、afterを使っています。
あらかじめエディタに書くコード
<div class="btn">ここをクリック</div>
¥HTML¥
body{
padding: 30px;
}
.btn{
position: relative;
width: 200px;
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
}
.btn::before,.btn::after{
position: absolute;
content: "";
width: inherit;
height: inherit;
border: 2px solid black;
box-sizing: border-box;
transition: .3s;
}
.btn::before{
top: -5px;
left: -5px;
border-right: none;
border-bottom: none;
}
.btn::after{
top: 5px;
right: -5px;
border-top: none;
border-left: none;
}
¥CSS¥
期待する画面
解答と解説(おしゃれなボタンアニメーションを作ろう)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
どうだったでしょうか。今回はいくつかの基礎的な知識の複合問題です。
まず、hover時にbeforeもafterも動いていますよね。これをtransformで実現します。これはtop、leftとかでできるんじゃない?と思われたと思います。やってみると分かると思いますが、topが動いてからleftが動くと言った感じで別々の動作になりませんか?これだとちょっとブサイクなアニメーションになるので今回はtransformを利用しました。最後にborder-radiusで角を丸くすれば完成です。是非これを機会に自分で面白いボタンを作ってみてください。