画像なんていらない!! 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ボタンを作ってみた […]
影までまわっちゃおかしいような・・・