ページ切り替えメニュー2-2

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


ページ切り替えメニューを作成するHTMLとCSSのサンプルコードです。

「ページ切り替えメニュー2」で作成した項目の部分に、背景画像を設定して少し立体感を出しています。

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


ページ切り替えで使用することを想定した横型のメニューです。

  • display: inline を指定して、li要素を横に並べています。
  • メニュー項目をポイントすると、その項目の背景画像や枠線が切り替わります。
  • 項目の幅は、文字サイズに応じて変化します。
  • 項目の間隔を変更したい場合は、項目の右マージンを変更してください。
  • 「 < 」と「 > 」記号は、文字実体参照で「 &lt; 」「 &gt; 」と記述しています。
項目の設定について
  • 要素の種類によって、リンクする項目とリンクしない項目、アクティブな項目、この3つを切り替えています。
  • a要素 … リンクする項目
  • span要素 … リンクしない項目
  • strong要素 … アクティブな項目
使用している画像

page_gen.gif page_gen.gif

page_act.gif page_act.gif

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

コード

CSSコード
/* --- ページングエリア --- */
.paging {
margin: 20px 0;
}

/* --- メニューエリア --- */
.paging .nl {
margin: 0;
padding: 4px 0; /* メニューのパディング(上下、左右) */
list-style-type: none;
text-align: center; /* メニューのセンタリング */
font-size: 80%; /* メニューの文字サイズ */
}
/* --- メニュー項目 --- */
.paging .nl li {
display: inline;
margin-right: -1px; /* 項目の右マージン */
}

/* --- リンク --- */
.paging .nl li a {
display: inline-block;
padding: 4px 8px; /* リンクエリアのパディング(上下、左右) */
background: #f9f9f9 url(page_gen.gif) repeat-x top; /* リンクエリアの背景 */
border: 1px #c0c0c0 solid; /* リンクエリアの枠線 */
text-decoration: none; /* テキストの下線(なし) */
}
/* --- ポイント時の設定 --- */
.paging .nl li a:hover {
background: #004080 url(page_act.gif) repeat-x top; /* ポイント時の背景 */
border: 1px #000080 solid; /* ポイント時の枠線 */
text-decoration: underline; /* テキストの下線(あり) */
color: #ffffff; /* ポイント時の文字色 */
}

/* --- アクティブな項目 --- */
.paging .nl li strong {
display: inline-block;
padding: 4px 8px; /* 項目のパディング(上下、左右) */
background: #004080 url(page_act.gif) repeat-x top; /* 項目の背景 */
border: 1px #000080 solid; /* 項目の枠線 */
color: #ffffff; /* 項目の文字色 */
}

/* --- リンクしない項目(前へ・次へ) --- */
.paging .nl li span {
display: inline-block;
padding: 4px 8px; /* 項目のパディング(上下、左右) */
background: #f9f9f9 url(page_gen.gif) repeat-x top; /* 項目の背景 */
border: 1px #c0c0c0 solid; /* 項目の枠線 */
color: #808080; /* 項目の文字色 */
}
HTMLコード
<div class="paging">

<ul class="nl">
<li><span>&lt; 前へ</span></li>
<li><strong>1</strong></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>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
<li><a href="#">次へ &gt;</a></li>
</ul>

</div>


<div class="paging">

<ul class="nl">
<li><a href="#">&lt; 前へ</a></li>
<li><a href="#">1</a></li>
<li><strong>2</strong></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
<li><a href="#">次へ &gt;</a></li>
</ul>

</div>

備考

  • display: inline を指定して横並びにした場合、項目間に余計なスペースが入ってしまいます。そのスペースを小さくするために、項目の右マージンにマイナス値を指定しています。
  • メニューに折り返しが入ると、ブラウザによっては項目の一部が重なってしまいます。
  • リンク選択時に表示される点線(アウトライン?)を整えるため、各項目内の要素に display: inline-block を指定しています。この指定がない場合、IEではアウトラインの位置がずれてしまいます(枠にフィットしません)。
    ※ただし、この指定を行なうと別の不具合が発生してしまいます。詳しくは「ページ切り替えメニュー2」の備考欄をご覧ください。


inserted by FC2 system