タブ型のメニューを作成するサンプルコードです。
- 表示例
ヘッダ付近での使用を想定したタブ型のメニューです。
- floatを指定して、li要素を横に並べています。
- 「タブの幅」は、タブ内のテキスト量に合わせて調整してください。
- タブの幅は、文字サイズに応じて変化します。変化させたくない場合は、「タブの幅」をピクセルで指定してください。
- 背景画像の都合上、タブの幅は最大で200px程度までとなります。
- 各タブの幅は均等になります。
- タブの間隔を変更したい場合は、「タブの右マージン」を変更してください。左端の余白は、「メニューの幅」で調整しています。
- li要素にクラス名(active)を設定すると、そのタブをアクティブタブ(紺色のタブ)に切り替えることができます。
使用している画像
tab_gen1_left.gif
tab_gen1_right.gif
tab_act1_left.gif
tab_act1_right.gif
背景色は白となります。(角丸の部分は透過されていません)
※画像へは直接リンクしないでください。(ダウンロードしてから使用してください)
コード
CSSコード
/* --- ナビゲーションバー --- */
div.nav {
width: 100%; /* ナビゲーションの幅 */
padding-top: 20px; /* ナビゲーションの上パディング */
background-color: #ffffff; /* ナビゲーションの背景色 */
border-bottom: 3px #004080 solid; /* 下境界線 */
font-size: 80%;
}
/* --- メニューエリア --- */
div.nav ul.nl {
width: 99%; /* メニューの幅 */
margin: 0 auto; /* メニューのマージン(上下、左右) */
padding: 0;
list-style-type: none;
text-align: center;
}
/* --- メニュー項目 --- */
div.nav ul.nl li {
width: 8em; /* タブの幅 */
margin-right: 4px; /* タブの右マージン */
background: #f9f9f9 url(tab_gen1_left.gif) no-repeat left top; /* タブの背景(左) */
float: left;
}
/* --- リンク --- */
div.nav ul.nl li a {
display: block;
position: relative; /* IE6用 */
padding: 6px 2px 5px; /* リンクエリアのパディング(上、左右、下) */
background: url(tab_gen1_right.gif) no-repeat right top; /* タブの背景(右) */
text-decoration: none; /* テキストの下線(なし) */
}
/* --- ポイント時の設定 --- */
div.nav ul.nl li a:hover {
text-decoration: underline; /* テキストの下線(あり) */
}
/* --- アクティブなタブ --- */
div.nav ul.nl li.active {
background: #004080 url(tab_act1_left.gif) no-repeat left top; /* タブの背景(左) */
}
div.nav ul.nl li.active a {
background: url(tab_act1_right.gif) no-repeat right top; /* タブの背景(右) */
color: #ffffff; /* アクティブタブの文字色 */
}
/* --- clearfix --- */
.clearFix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearFix {
min-height: 1px;
}
HTMLコード
<div class="nav">
<ul class="nl clearFix">
<li class="active"><a href="#">タブ項目1</a></li>
<li><a href="#">タブ項目2</a></li>
<li><a href="#">タブ項目3</a></li>
<li><a href="#">タブ項目4</a></li>
<li><a href="#">タブ項目5</a></li>
</ul>
</div>
<div class="nav">
<ul class="nl clearFix">
<li><a href="#">タブ項目1</a></li>
<li><a href="#">タブ項目2</a></li>
<li class="active"><a href="#">タブ項目3</a></li>
<li><a href="#">タブ項目4</a></li>
<li><a href="#">タブ項目5</a></li>
</ul>
</div>
備考
- floatの解除には「clearfix」という手法を使用しています。
- リンクテキストの左右には余裕を持たせてください。ギリギリに設定すると、文字サイズを変更した際に折り返しが入ってしまう場合があります。
- タブの背景画像は、1枚目(左用)をli要素に、2枚目(右用)をa要素に設定し、それを重ね合わせて1つのタブに見せています。(タブの幅の変化に対応するため)
- IE6での不具合(クリックできる範囲がテキストのみになってしまう)を避けるため、a要素に position: relative を指定しています。