1
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.

HTML と CSS で動くボタンを作ってそれっぽく見せる

Last updated at Posted at 2021-08-04

HTMLとCSSのみで影付きで動くボタンを実装します。

こんなの

button.gif

まずは下準備

<div class="container">
     <span class="btn message">さっそく購読する</span>
</div>

ここではセレクタとしてクラスにbtn messageを設定します。

次いでCSS

.btn{
    padding:8px 24px;
    color:white;
    display:inline-block;
    opacity:0.8;
    border-radius:4px;
    cursor: pointer;
    background-color:#5dca88;
}

この時点で角丸のかわいらしいボタンが出来ますね。

image.png

影をつけます。

.btn{
    padding:8px 24px;
    color:white;
    display:inline-block;
    opacity:0.8;
    border-radius:4px;
    cursor: pointer;
    background-color:#5dca88;
    box-shadow: 5px 7px 5px 1px rgba(68, 73, 70, 0.3); /*影を追加*/

}

するとこんな感じになります。

image.png

box-shadowはプロパティ値が多いので説明します。
左から順番に要素から相対的な X および Y のオフセット、ぼかしと拡散の半径、色を指定しています。
つまり、一つ目の値である5pxのところを10pxにすれば右方向に影が生成され、2つ目の7pxを変えれば下方向に生成されます。
あとはぼかし具合と影の半径(大きさ)を決めて、最後にrgbaで色味と透明度の設定をしています。

詳しくはMDNでも読みやがってください。

お次はマウスオーバーした際に色が変わるようにします。

その方がかわいいから。

以下をCSSに記述します。

.btn:hover{
    opacity:1;
}

こんな感じになります。(画像が雑ですみません)
button hover.gif

マウスオーバーした際にopacity(透明度)が0.8 から1.0変更されることによって選んだ感を出してるわけです。

最後に押下時の動きをつけます。

.message:active{
    box-shadow:none;
    position:relative;
    top:7px;
}

出来上がり(画像雑ですみません)
button.gif

セレクタ:activeによって押下時の動きをつけているのですが、
box-shadow:none;にすることで影を消し、
position:relative; で要素の基準位置を設定し、
更にtop:7pxで、ボタンの左上(基準位置)から7px下にボタンを表示する、となっているわけですね。

すると結果的ボタンに動作を与えることが出来るんですね。

また一つ賢くなってしまったね。

1
0
1

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
1
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?