エントリー本文
グローバルナビゲーション(その1:基本スタイル)
最近すっかりオーソドックスになった、順序なしリスト(ul/li)を用いたグローバルナビゲーションを紹介します。

2年ほど前に書いた「ナビゲーションバー・シンプルタイプ」というエントリーは、アンカーテキストを並べた形式でしたが、グローバルナビゲーションの作り方についてコメントを頂きましたので、新たに作成してみました。
巷では、画像を用いたものやプルダウンメニューつきのグローバルナビゲーションをよく見かけるのですが、ここではテキストのみによるシンプルなグローバルナビゲーションを紹介します。
1項のサンプルコードは Movable Type のMTタグを埋め込んでいますが、MTタグを書き換えれば汎用的に使うことが出来ます。
動作は Windows XP + IE6/IE7/Firefox2/Opera9/Safari3 で確認しています。
1.テンプレートの設定
ヘッダの下にグローバルナビゲーションのマークアップ(青色)を追加します。
<div id="header">
<h1 id="blog-name"><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName encode_html="1"$></a></h1>
<MTIfNonEmpty tag="BlogDescription"><p class="blog-description"><$MTBlogDescription encode_html="1"$></p></MTIfNonEmpty>
</div>
<div id="navi">
<ul>
<li><a href="<$MTBlogURL$>" title="Home">Top</a></li>
<li><a href="<$MTBlogURL$>about.html" title="about">About</a></li>
<li><a href="<$MTBlogURL$>profile.html" title="Profile">Profile</a></li>
<li><a href="<$MTBlogURL$>link.html" title="Link">Link</a></li>
<li><a href="<$MTBlogURL$>search.html" title="Search">Search</a></li>
<li><a href="<$MTBlogURL$>contact.html" title="Mail">Mail</a></li>
</ul>
</div>
2.CSS 追加
下記のグローバルナビゲーション用スタイルをスタイルシートに追加します。
#navi {
border-bottom: 1px solid #669;
background: #fff;
height: 25px;
}
html > body #navi,
html > body #navi ul li a { /* for Safari */
height: 28px;
}
#navi ul {
margin: 0;
padding: 0;
list-style: none;
}
#navi ul li {
float:left;
border-right:1px solid #333;
width: 100px;
}
#navi ul li a {
display: block;
color: #333;
font-size: 75%;
text-align: center;
letter-spacing: 0.1em;
line-height: 2.3;
text-decoration: none;
}
#navi ul li a:link,
#navi ul li a:visited {
background: #fff;
}
#navi ul li a:hover {
color: #000;
background: #ccc;
}
全体に border を与えているので XHTML のマークアップが div の分だけ冗長になってしまっています。すいません。
また、IE6のテキスト部分以外にマウスオーバーを有効にする対策では height を用いていますが、#navi ul li a に position: relative; を与える方法もあります。
2007.12.28
タイトルを「ナビゲーションバー・リストタイプ」から「グローバルナビゲーション」に変更し、併せて本文も修正しました。
- CSS で table に斜線を引く方法
- IE7 で pre 要素が適正に表示されない不具合を修正
- CSS ネガティブマージンで重なった要素のリンクをクリックできるようにする
- CSS でヘッダーに画像を表示する for Movable Type 4
- CSSでブログに影をつける(ドロップシャドウ:Movable Type 4.x 配布テンプレート版)
- Highslide JS でサムネイル画像を拡大表示する(設定方法の変更)
- CSS でブログ本文の画像だけをセンタリングする
- CSS の画像置換で画像にリンクを設定する
- XREA のバナー広告を固定レイアウトのヘッダに表示する
- 「追記文章の折りたたみ 2.0」でIE7の不具合を解消する
- サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
- 公開テンプレートにフッタを追加する(2カラム版)
- CSS の after 擬似要素で回り込みを解除する
- テンプレートカスタマイズ支援ツール Column Resizer
- サイドバーのタイトル背景をカラム幅にあわせて表示する
- 公開テンプレートのサイドバーのカラム幅を変更する
- CSSでブログに影をつける - ドロップシャドウ画像ファイルの作り方
- CSSでブログに影をつける(ドロップシャドウ)
- IE7 の CSS ハック
- CSSでブロックレベル要素をセンタリングする
- Movable Type 4 Beta 4 公開 & テンプレート編集画面レイアウト変更
- ナビゲーションバー・シンプルタイプ(その1:基本スタイル)
- 高品質な音楽を配信する音楽版 YouTube 「Blogmusik」
- ナビゲーションバー・シンプルタイプ(その2:クリックしたメニューのロールオーバーを保持する)
- ナビゲーションバー・シンプルタイプ(その3:クリック時のロールオーバーを追加)
- Movable Type(MT)テンプレート
- CSS の画像置換で画像にリンクを設定する
- YUI(Yahoo! User Interface Library)を利用したドロップダウン式グローバルナビゲーション
- リンク画像の枠線を消す
- スタイルシート切り替え(プルダウンメニュー版)
≫ ROYAL WING from 写真館"E-Revolution"
この船には思い出があるんです。 今のカミさんと結婚する前、彼女の誕生日にこの船... [続きを読む]
≫ ナビゲーションバー、メールフォームを設置しました。 from White Wing version2.0
ずっと設置したいと思っていたナビゲーションバーと、メールフォームを当blogに... [続きを読む]
≫ ナビゲーション from T O K Y O M E L O D Y
一日に3回も日記を書くのは初めて...かなあ。 午後はお客さんも少なくヒマだった... [続きを読む]
≫ グローバルナビゲーションを追加 from good-days
小粋空間: グローバルナビゲーション(その1:基本スタイル) 小粋空間さんの... [続きを読む]
こんばんは、はじめまして。
このメニューを利用したいのですけどもメニューの高さを変更したいのですけどもどの部分を操作すればよいでしょうか?素人質問で申し訳ありませんが、宜しくお願いいたします。
お手数おかけしました。
自己解決いたしました。
また、宜しくお願い致します。
>かんきちさん
こんばんは。
[1]と同じ方でしょうか?
であれば自己解決されたようでなによりです。
ではでは!
こちらのグローバルナビゲーションを使わせて頂いているのですが
今回 php5に移行したところ
サーバーが allow_url_include をオンにすることができない仕様ということで
警告文字の羅列になってしまいました。
ほかにも折りたたみメニューのところも同じ状態です。
サーバーで allow_url_include をオンにすることができない場合
この状態を 解決する代替方法がありますでしょうか?
教えていただけるとうれしいです。
サーバーはロリポです・・・
どうぞ よろしくお願いします。
>プチミさん
こんばんは。
ご質問の件ですが、このグローバルナビゲーションの記事内容とは別のご質問という解釈で良いでしょうか?
例えば、PHPのinclude文でエラーになっているということであれば、
<?php include("http://~/hoge.html"); ?>
を
<?php readfile("http://~/hoge.html"); ?>
または、
<?php readfile("<$MTBlogSitePath$>/hoge.html"); ?>
に変更してみてはどうでしょうか?
早速にお答えして頂いてありがとうございました。
この一週間 鬱々と悩んできたことがyujiroさんのおかげで
一発で解決するできました。
筋違いのところにカキコして申し訳ありませんでした。
問い合わせフォームではスパムになってしまったので
こちらに書かせていただきました。
感謝です。
これからもどうぞよろしくお願いいたしますm(__)m
