:activeでボタンに「押しごたえ」を付けてみる
この記事は賞味期限切れです。(更新から1年が経過しています)
Tumblrのダッシュボードの左上のロゴを見ていてふと思ったのですが、
マウスオーバーの処理をする事はあっても、
クリックした時の処理をしているサイトって意外と少ないですよね。
そこで今日はボタンをクリックした時のスタイルについてメモなど。
(わかっちゃいるけど面倒くさいんだろうなぁ、という気はしている)
© まっは画伯
どんなスタイルにすると「押しごたえ」が生まれる?
- へこんだデザインにする
- 位置を下げる
- ちょっと暗くしてみる
あたりで「押しごたえ」が出るのではないでしょうか。
(ざっくばらん)
基本は「:active」で
:hoverがマウスオーバー時のスタイルならば、
ボタンを押下した時のスタイルは:activeで記述します。
こちらは一例。
(IEだと残念な見栄えになります)
HTML
<a href="#" class="button">BUTTON</a>
CSS
.button {
display:inline-block;
padding:5px 10px;
background-color:#69c;
color:#fff;
border:1px solid #69c;
text-decoration:none;
font-size:13px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
}
.button:hover{
background-color:#79acdf;
-webkit-box-shadow:inset 0px 0px 3px #fff;
-moz-box-shadow:inset 0px 0px 3px #fff;
box-shadow:inset 0px 0px 3px #fff;
}
.button:active{
padding-top:6px;
padding-bottom:4px;
border:1px solid #334c66;
background-color:#69c;
color:#e0ebf5;
-webkit-box-shadow:inset 0px 0px 8px #334c66;
-moz-box-shadow:inset 0px 0px 2px #3a6da0;
box-shadow:inset 0px 0px 2px #3a6da0;
}
上下paddingを調整して押下した感を出してます。
ちなみにこれをインラインで使おうとすると回りも巻き込んでしまうのでご注意を。
IE6/7だとクリック後に復帰できない問題
IE6/7で見ると、ボタンをクリックした後もフォーカスが残ってしまっているのか、
他の要素をクリックするまで:activeのスタイルのままになってしまいます。
なので、例えばJavaScriptでこんなのを足してみます。(要jQuery)
クリックイベントが発生した時に、ボタンからフォーカスを外しています。
$(".button").click( function(){ this.blur(); } );
とはいっても、画面遷移しちゃうようなボタンでやったところで、あまり見てもらえなくて残念。
例えばAjaxコンテンツのような、その場で切り替わるページなら、
「押し応え」を付加する事で使い心地が向上するかもしれませんね!
コメント