横並びメニュー 不均等幅2

無料・有料 レンタルサーバー比較


横並びのメニューを作成するHTMLとCSSのサンプルコードです。
※項目ごとに幅を設定するタイプとなります。

少しだけ立体感のある背景画像を設定しています。

テンプレートのご利用について


ヘッダ付近での使用を想定した横型のメニューです。

  • floatを指定して、li要素を横に並べています。
  • メニュー項目をポイントすると、その項目の背景画像が切り替わります。
  • 各項目の幅は、項目内のテキスト量に合わせて調整してください。
  • 項目の幅は、文字サイズに応じて変化します。
使用している画像

hor2_menu2_off.gif hor2_menu2_off.gif

hor2_menu2_on.gif hor2_menu2_on.gif

画像へは直接リンクしないでください。ダウンロードしてから使用してください)

コード

CSSコード
/* --- ナビゲーションバー --- */
.nav {
width: 100%; /* ナビゲーションの幅 */
background: #004080 url(hor2_menu2_off.gif) repeat-x top; /* ナビゲーションの背景 */
border-top: 1px #002448 solid; /* 上枠線 */
border-bottom: 1px #002448 solid; /* 下枠線 */
font-size: 80%;
}

/* --- メニューエリア --- */
.nav .nl {
width: 100%; /* メニューの幅 */
margin: 0;
padding: 1px 0; /* メニューのパディング(上下、左右) */
list-style-type: none;
text-align: center;
}

/* --- メニュー項目 --- */
.nav .nl li {
float: left;
}

/* --- 項目の幅(emで指定) --- */
.nav .nl li.item1 {
width: 9.5em;
}
.nav .nl li.item2 {
width: 4em;
}
.nav .nl li.item3 {
width: 7.5em;
}
.nav .nl li.item4 {
width: 6em;
}
.nav .nl li.item5 {
width: 4.6em;
}

/* --- リンク --- */
.nav .nl li a {
display: block;
position: relative; /* IE6用 */
padding: 5px 5px; /* リンクエリアのパディング(上下、左右) */
border-right: 1px #004080 solid; /* リンクエリアの右枠線 */
text-decoration: none; /* テキストの下線(なし) */
}
/* --- リンクテキストの色 --- */
.nav .nl li a:link,
.nav .nl li a:visited,
.nav .nl li a:hover,
.nav .nl li a:active
{
color: #ffffff;
}
/* --- ポイント時の設定 --- */
.nav .nl li a:hover {
background: #004080 url(hor2_menu2_on.gif) repeat-x 0 -1px; /* ポイント時の背景 */
text-decoration: underline; /* テキストの下線(あり) */
}

/* --- clearfix --- */
.clearFix:after {
content: ".";
display: block;
height: 0;
clear: left;
visibility: hidden;
}
.clearFix {
min-height: 1px;
}
HTMLコード
<div class="nav">

<ul class="nl clearFix">
<li class="item1"><a href="#">ホームページ作成</a></li>
<li class="item2"><a href="#">HTML</a></li>
<li class="item3"><a href="#">スタイルシート</a></li>
<li class="item4"><a href="#">JavaScript</a></li>
<li class="item5"><a href="#"></a></li>
</ul>

</div>

備考

項目の幅指定について
  • 一般的なブラウザでは、各項目の幅(width)を指定しなかった場合でも、同じように横並びで表示されます。
    ※内容(テキスト量)に合わせて、各項目の幅が自動的に調整されることになります。
  • ただしその場合、一部のブラウザ(Mac IE)では各項目の幅が100%になってしまい、横並びで表示されなくなってしまうようです。そのリスクを避けたい場合は、上記のコードを参考に各項目の幅を指定しておいてください。
  • CSS 2の仕様に準拠する場合は、各項目の幅を指定しておいてください。
CSSコード
  • floatの解除には「clearfix」という手法を使用しています。
  • 「メニューの幅」の指定は省かないようにしてください(IEでの不具合を避けるため)。
  • 項目の幅を指定する場合は、リンクテキストの左右に余裕を持たせてください。ギリギリに設定すると、文字サイズを変更した際に折り返しが入ってしまう場合があります。
  • IE6での不具合(選択できる範囲がテキストのみになってしまう)を避けるため、a要素に position: relative を指定しています。


inserted by FC2 system