Home > CSS > [CSS]画像1枚でメニューボタンを作る

[CSS]画像1枚でメニューボタンを作る

tinyMCEや大手サイトなどでよく使われてる、メニューボタンの画像を1枚にまとめてしまう手法。
ボックスなどにも応用出来るので覚えとくと便利じゃないかなと思います。

完成すると上のようなメニューになるとする。
この場合、a:linkとa:hoverを1枚にまとめて作成します。
横メニューなら上下、縦メニューなら左右に並べて作る。

HTMLは次のようなソースになる。

HTML:
  1. <ul id="navigation">
  2.     <li><a href="#" title="トピックス" class="topics">トピックス</a></li>
  3.     <li><a href="#" title="経営方針" class="policy">経営方針</a></li>
  4.     <li><a href="#" title="会社概要" class="outline">会社概要</a></li>
  5.     <li><a href="#" title="事業内容" class="activities">事業内容</a></li>
  6.     <li><a href="#" title="営業拠点" class="base">営業拠点</a></li>
  7. </ul>

aタグかliタグに各ボタンを判別するためのclassが必要です。
セレクタが少ないaタグにつけるのが妥当と思うがお好みで。

CSS
まずはボタン以外と共通部分。

CSS:
  1. ul#navigation {
  2.     width:920px;
  3.     margin:0;
  4.     overflow:hidden; /*float解除*/
  5.     zoom:100%; /*float解除*/
  6. }
  7. ul#navigation li {
  8.     float:left; /*次の要素を右側へ回り込ませる*/
  9.     list-style:none; /*リストの●を消す*/
  10. }
  11. ul#navigation li a {
  12.     display:block; /*インラインからブロック要素へ変更*/
  13.     height:37px; /*高さ*/
  14.     width:180px; /*横幅*/
  15.     text-align:center; /*テキストの位置*/
  16.     font-weight:bold; /*テキストの太さ*/
  17.     letter-spacing:1px; /*文字間隔*/
  18.     text-indent:-9898px; /*テキストを横に飛ばして見えなくする*/
  19.     background-image:url(../images/menu.png); /*メニュー画像*/
  20.     background-repeat:no-repeat; /*画像の繰り返しをオフに*/
  21. }

CSSでメニューボタン作る時のセオリー通りに書けばおk。

以下はボタンのソース

CSS:
  1. ul#navigation a.topics {background-position:0px 0px;width:190px;}
  2. ul#navigation li a.topics:hover {background-position:0 -37px;}
  3.  
  4. ul#navigation a.policy {background-position:-190px 0px;}
  5. ul#navigation li a.policy:hover {background-position:-190px -37px;}
  6.  
  7. ul#navigation li a.outline {background-position:-370px 0px;}
  8. ul#navigation li a.outline:hover {background-position:-370px -37px;}
  9.  
  10. ul#navigation li a.activities {background-position:-550px 0px;}
  11. ul#navigation li a.activities:hover {background-position:-550px -37px;}
  12.  
  13. ul#navigation li a.base {background-position:-730px 0px;}
  14. ul#navigation li a.base:hover {background-position:-730px -37px;}

画像に合わせてbackground-positionで位置指定する。
指定の仕方はbackground-position : 横 縦 ;です。
数値で指定した場合は 横→左から、縦→上から の位置になります。

このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://tenderfeel.xsrv.jp/css/396/trackback/
Listed below are links to weblogs that reference
[CSS]画像1枚でメニューボタンを作る from WebTecNote
pingback from CSS: 1枚画像でのリンクボタンの作り方 | BmathLog 10-12-10 (金) 11:59

[...] http://tenderfeel.xsrv.jp/css/396/ カテゴリー: CSS, JavaScript, WebDesign   パーマリンク ← Perl: 空白で分割して1列目を表示 [...]

Home > CSS > [CSS]画像1枚でメニューボタンを作る

最近の投稿
最近の修正
  • そしてこのSQLはわれながらよく書いたと思う 2010-11-15
  • CSVの列っていう方がいいのかな…118項目だった 2010-11-15
  • 楽天のCSVの項目が116個もあった衝撃 2010-11-15
  • オフィスで香水臭振りまくのは迷惑だと知れ 2010-11-15
  • ぐあー フレグランステロやー 2010-11-15
  • More updates...

Powered by Twitter Tools

Tag Cloud
おすすめサーバー・他
メタ情報

Return to page top