画像なんていらない!! fontelloとCSS3を使って3Dボタンを作ってみた
こんにちは。
連日の暑さにとろけそう。井畑です。
今回は、前からやってみたかった事に挑戦してみました。
今はやりのWebフォントとCSS3を使って、
3Dボタンを作る事です。
以前から、機会があったらやってみようと思っていたのですが、
なかなか機会にめぐりあえず、どうせなら備忘録ついでに
ブログに書いちゃえと思った次第です。
それでははりきってどうぞ!
目次
1.Webフォントを「fontello」からダウンロード

Webフォントを使うにあたり、最近とてもステキなサイトを見かけました。
このサイトでは、自分の使いたいアイコンだけを選んでセットにし、
それをWEBフォントとしてダウンロードできるという優れものです。
使いたいものだけってのがポイントですね。
これなら余計に容量が増えなくてすみます。
今回は、このFontelloから使いたいフォント(アイコン)をダウンロードして、
アイコンに使いたいと思います。
1-1.fonelloからフォントをダウンロードする
使いたいフォントをクリックして選びます。
選んだフォントは周りの枠線が
今回は4つ選んでみました。(ピューと吹く!ジャガーのハミィみたいのがいた!!)

選択が終わったら、上部タブから「Edit codes」をクリックします。
ここでは、アイコン画像の上のバーをクリックして、
アイコンに割り当てる文字を決めることができます。
僕は右から順に「a」「s」「d」「f」としました。
(ハミィかわいいよ。ハスハス)

ページ右上の「Download webfont」を押してフォントをダウンロードします。

1-2.解凍して中身を確認する
「fontello-○○.zip」というファイルをダウンロードできます。
解凍して中身を確認してください。
解凍すると、ファイルは以下のような構成になっています。

今回はこの中のfontフォルダ(fontello.eot,icons.svg,icons.ttf,icons.woff)を使ってアイコンを作っていきます。
2.CSS3でボタンを作成
続いて、CSS3を使ってボタンを作成していきます。
ファイルの構成は以下のようにしました。
index.html
 ┗style.css
 [fontフォルダ]←ダウンロードしたファイル
 ┣icons.eot
 ┣icons.svg
 ┣icons.ttf
 ┗icons.woff
2-1.HTMLの設定
HTML側は普通のリストです。
<ul class="nav">
    <li><a href="#" class="icon-home"></a></li>
    <li><a href="#" class="icon-cog"></a></li>
    <li><a href="#" class="icon-cw"></a></li>
    <li><a href="#" class="icon-location"></a></li>
</ul>
2-2.CSSの設定(WEBフォント)
CSSの設定を一気に書くと長くて分かりづらいので、少しずつご紹介します。
まずは、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-flower:after  { content: ’a’ ; } /*アイコン表示用*/
.icon-hami:after  { content: ’s’ ; } /*アイコン表示用*/ 
.icon-hav:after   { content: ’d’ ; } /*アイコン表示用*/
.icon-ref:after   { content: ’f’ ; } /*アイコン表示用*/
ポイントは最後の4行の:after疑似要素とcontentです。
これを使うことで、index.htmlに余計な文字が入るのを防ぎます。
いきなりボタンのリストに意味不明の文字「a」とか入っていたら変ですからね。
もちろん、SEOにも良くないのでこのような感じにしました。
2-3.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: #aaa;
  margin: 20px;
  width: 80px;
  height: 80px;
  position: relative;
  text-align: center;
  text-decoration: none;
  line-height: 80px;
  border-radius: 50%;
  box-shadow: 0px 3px 8px #aaa, inset 0px 2px 3px #fff;
}
.nav a:before {
  content: "";
  display: block;
  border-top: 2px solid #ddd;
  position: absolute;
  top: -8px;
  left: -8px;
  bottom: -8px;
  right: -8px;
  z-index: -1;
  border-radius: 50%;
  box-shadow: inset 0px 8px 40px #dedede;
}
2-4.CSSの設定(ボタンのホバー時装飾)
ボタンにカーソルがのった時のアクションCSSです。
今回は
・文字がピンクにぼやけるver・ボタンがくるんとまわるverの2パターン作ってみました。
.nav a:hover{
  text-shadow: #F4ACC6 0px 0px 20px;
  color: #F46C96;
  background: #f5f5f5;
  transition: .8s;
  -moz-transition: .8s;
  -webkit-transition: .8s;
}
.nav a:hover{
  text-shadow: none;
  color: #777;
  transform: rotate(360deg);
  -o-transform: rotate(360deg);
  -moz-transform: rotate(360deg);
  -webkit-transform: rotate(360deg);
}
どっちも面白い効果ができて満足です;D
完成!!
以上で完成です!!
CSS3対応のブラウザで見ると以下のようになります。

デモページを作ってみました。
CSS3対応ブラウザでご覧下さい。
とっても参考になりました!
最後に
まだまだ使いどころが難しいCSS3ですが、
スマートフォンサイトなど場所を選べば思う存分効果を発揮します。
画像を使わずにこのクオリティで作れるならとっても素敵ですね!!
未来が楽しみです。
やりたかったことができて、大満足;D
以上、井畑でした!!







[…] 画像なんていらない!! fontelloとCSS3を使って3Dボタンを作ってみた […]
[…] 画像なんていらない!! fontelloとCSS3を使って3Dボタンを作ってみた […]
[…] 画像なんていらない!! fontelloとCSS3を使って3Dボタンを作ってみた […]
影までまわっちゃおかしいような・・・