スタイルシートマニア
ナビゲーションメニュー(実用編Ⅱ) | ホームページカスタマイズ Tips
今までは、CSSベースでナビゲーションをデザインしていましたが、今回からは画像を使ってナビゲーションを作っていきます。CSSだけだと、どうしてもやれる事に制限が出てきてデザインが自由にできない状況でしたが、画像を使うことでフォントを自由に選択できたり、細かなデザインも可能になります。
今回のポイントは#menu07 li a のfont-size: 0;でテキストを小さくしてtext-indent: -9999px;で画面外に飛ばし、その後に各項目にIDを振り分けて画像をbackgroundで指定・位置を調整することにあります。ちなみにdisplay:block;にしないと画像は表示されないので注意してください。僕も時々忘れてて、「なんで写らないんだ!」っということが間々あります(最近は原因が分かっているのですぐ対処できますけど)
<div id="menu07"> <ul> <li id="home"><a href="http://source-marine.net/css-mania">Home</a></li> <li id="cms"><a href="http://source-marine.net/cms/"CMS</a></li> <li id="source-branch"><a href="http://source-branch.net/">ソースブランチ</a></li> <li id="homepage-recommendation"><a href="http://source-marine.net/homepage-recommendation/">HPのすすめ</a></li> <li id="source-marine"><a href="http://source-marine.net/">ソースマリン</a></li> <li id="production-rate"><a href="http://source-marine.net/production-rate/index.html">制作料金</a></li> </ul> </div>
#menu07 ul { width: 600px; } #menu07 li { display: inline; } #menu07 li a { width: 100px; height: 30px; float: left; display:block; text-decoration: none; font-size: 0; text-indent: -9999px; outline: none; } #menu07 #home a { background: url(../img/navi07.jpg) 0 0 no-repeat; } #menu07 #cms a { background: url(../img/navi07.jpg) -100px 0 no-repeat; } #menu07 #source-branch a { background: url(../img/navi07.jpg) -200px 0 no-repeat; } #menu07 #homepage-recommendation a { background: url(../img/navi07.jpg) -300px 0 no-repeat; } #menu07 #source-marine a { background: url(../img/navi07.jpg) -400px 0 no-repeat; } #menu07 #production-rate a { background: url(../img/navi07.jpg) -500px 0 no-repeat; }
<a title="ナビゲーションメニュー(実用編Ⅱ)サンプル" href="http://source-marine.net/css-mania/sample081005 " target="_blank">サンプル</a>
ここで、画像を使うんなら、はなっから
<li><a href=”http://source-marine.net/css-mania/><img src=”home.gif” width=”100″ heigth=”30″ alt=”home” /></a></li>
にすればいいのではないか?っという疑問も当然出てくると思います。
まあ、これでも別にかまいませんし、間違いでもありません。ただ僕の見解としては、SEO的に若干不安なのでそれぞれの項目にIDを振り分けて設定しています。それというのも、以前の記事にも書いたように極力無駄なタグは省くというのが、SEOにおける「最適化」であり、またスタイルシートの「原点」だと僕は思っています。
<li><a href=”http://source-marine.net/css-mania/><img src=”home.jpg” width=”100″ heigth=”30″ alt=”ホーム” /></a></li>
<li id=”home”><a href=”http://source-marine.net/css-mania/>ホーム</a></li>
上の二つのタグを比べたら分かると思いますが、そこまで劇的に違わないにしろ僕のやり方の方がタグが短くなっていることがわかると思います。ここだけで言えば小さなことですが、これが積み重なると大きな違いになります。この違いが、同じくらいのステータスを持っている二つのホームページがひとつ上に出られるかどうか?っという要因のひとつになりえると僕は思います。
まあ、確かにメンテナンス性は少し落ちますし、これをやったからと言ってそんなに違わないとは思いますので、そこまで気を使わなくてもいいと思いますが、コーディングをやる人間としてはこれくらいのことはできなければいけないと思います。
画像を一枚にして位置を調整することに関しては次回、解説します。
« 前の記事 | 次の記事 » |