[み]画像は使わない!CSS3とWebフォントだけでステキなボタンをつくる方法

久しぶりにちょっとだけクリエイティブなお話を紹介します。タイトルにもあるとおり、CSS3とWebフォントだけでステキなボタンをつくる方法を紹介します。画像は本当につかいません。でも、かなりステキです。

Webフォントをダウンロード

まずは、Webフォントをダウンロードします。今回使うのはFontelloというサイトです。

Fontello – easy icon font composer

このFontelloは、自分の気に入ったアイコンだけを選んでダウンロードできるんです。なので、使わないような余計なものが含まれないので、ちょっとだけですが、軽くすることができます。

では、Fontelloの使い方です。

まずは、好きなアイコンを選びます。クリックするだけです。選択しているアイコンは赤い枠で囲まれます。やっぱこれやめとくわっていうときは、もう一度クリックするだけです。

ダウンロードしたいアイコンを選択したら、左上にある【Edit codes】をクリックします。ここでは、アイコンに割り当てる文字を決めることができます。今回はこんなカンジにしました。それぞれの頭文字をあてはめただけです。

文字の割り当ても終わったら、いよいよダウンロードです。右上の【Download webfont (4)】をクリックします。ちなみに、「(4)」となっているのは、アイコンを4コ選んだからで、10コ選べば(10)となります。

これでWebフォントの準備ができました。次はCSSでデザインしていきます。

CSSでボタンをデザイン

では、ボタンを並べるという設定にして、さっそくつくっていきます。

HTML

当たり前ですが、単純なリストで問題ありません。でも、それぞれにクラスをもたせてください。

<ul class="nav">
  <li><a href="#" class="icon-twi"></a></li>
  <li><a href="#" class="icon-mail"></a></li>
  <li><a href="#" class="icon-clip"></a></li>
  <li><a href="#" class="icon-rss"></a></li>
</ul>

これだけでOKです。

CSS(Webフォント部分)

次に、Webフォントを使うよ!ってのをCSSで書きます。
で、肝心のコードです。

@font-face {
  font-family: 'fontello';
  src: url("../font/fontello.eot");
  src: url("../font/fontello.eot?#iefix") format('embedded-opentype'), url("../font/fontello.woff") format('woff'), url("../font/fontello.ttf") format('truetype'), url("../font/fontello.svg#fontello") format('svg');
  font-weight: normal;
  font-style: normal;
}

.icon-twi:after { content: "t" ; }
.icon-mail:after { content: "m" ; }
.icon-clip:after { content: "c" ; }
.icon-rss:after { content: "r" ; }

after擬似要素を使うことで、HTMLソースに「t」とか「m」とかの意味不明な文字が入るのを回避しています。このfontelloの使い方はこちらを参考にしました。

もうアイコン画像はいらない! Webフォントを使って、iOS風タブバーとアイコンを作成する方法 : アシアルブログ

CSS(デザイン部分)

CSSのプロパティについては、いろんなサイトで解説されてますし、プロパティなんかわかんなくてもそれっぽいのがつくれてしまうジェネレータもあるんで、その辺はご自由にやってください。みはらのコピペでもぜんぜんかまいませんけど。

.nav {
  list-style: none;
  text-align: center;
}
 
.nav li {
  position: relative;
  display: inline-block;
  margin-right: -4px;
}
 
.nav a {
  font-family: 'fontello';
  font-size: 2.8em;  
  display: block;
  background-color: #f3f3f3;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#f3f3f3), to(#e7e7e7));
  background-image: -webkit-linear-gradient(top, #f3f3f3, #e3e3e3);
  background-image: -moz-linear-gradient(top, #f3f3f3, #e3e3e3);
  background-image: -ms-linear-gradient(top, #f3f3f3, #e3e3e3);
  background-image: -o-linear-gradient(top, #f3f3f3, #e3e3e3);
  color: #bbb;
  margin: 20px;
  width: 80px;
  height: 80px;
  position: relative;
  text-align: center;
  text-decoration: none;
  line-height: 80px;
  border-radius: 5%;
  box-shadow: 0px 3px 8px #aaa, inset 0px 2px 3px #fff;
}

.nav a:before {
  content: &quot;&quot;;
  display: block;
  border-top: 2px solid #ddd;
  position: absolute;
  top: -10px;
  left: -10px;
  bottom: -10px;
  right: -10px;
  z-index: -1;
  border-radius: 5%;
  box-shadow: inset 0px 8px 40px #dedede;
}

こちゃこちゃ書いてますが、ジェネレータから吐き出されたコードでOKですので、安心してジェネレータ使ってください。

これで基本形はできましたが、せっかくなのでというか実際に使うときにはhoverしたときに何かしらのアクションがないと、ボタンとしては機能しませんね。ですので、いくつかアニメーションをつけてみます。

hover時のアニメーションもCSSで

では、hover時のアニメーションです。これも、いろんなサイトで紹介されているので、その中から代表的なものを2つ紹介します。1つは動きがあるもの、もう1つは色が変化するものです。

hover時にクルっと回転させるCSS

まずはコードから。コピペするだけでだいじょぶです。

.nav a:hover{
  text-shadow: none;
  color: #888;
  transform: rotate(360deg);
  -o-transform: rotate(360deg);
  -moz-transform: rotate(360deg);
  -webkit-transform: rotate(360deg);
}

rotateプロパティの値を変えてやると、回転する角度が変えられます。このままだと360°回転します。

hover時に色が変化するCSS

こちらもまずはコードから。こっちもコピペでだいじょぶです。

.nav a:hover{
  text-shadow: #3399ff 0px 0px 1px;
  color: #3399ff;
  background: #f5f5f5;
  transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
}

CSS3っぽくというか、現代っぽいのは、ふわっと色が変わるあたりでしょうか?transitionプロパティだけで指定できますので、これだけでなく、ぜひ取り入れたいとこですね。

番外編:ガタガタさせる

hover時に、ボタンをガタガタ震わせることもjQueryを使えばできます。こちらの記事を参考にどうぞ。

オブジェクトをガタガタ震わせるjQueryプラグイン“jRumble”の使い方

デモページ

今回作成したボタンは実際にマウスオーバーしてもらったほうがわかりやすいと思います。ということで、まずはデモページでマウスオーバーしてみてくださいね:)

あ、デモページみるときはCSS3対応のブラウザで見てください。じゃないと、ぜんぜん別物になってしまいますので…

デモ:[み]画像は使わない!CSS3とWebフォントだけでステキなボタンをつくる方法

※追記
デモページを確認したら、回転しないですね… どうしてだろう… たぶん、単なる凡ミスだと思うんですが、わかる方教えてくださいませ。とりあえず、色が変わるほうだけでもお試しください。

シェアありがとうございます

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

commentYour Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

checkboxみはら.comはエックスサーバーです

editNEW エントリー

PAGE TOP arrowup