FC2ブログのテンプレート工房

カスタマイズが簡単な共有テンプレートを配布しています。テンプレートをカスタマイズして自分だけのオリジナルブログを作りませんか?

メニューバーのドロップダウン

以前に横メニューバーをブログタイトル下に表示する方法を紹介しました。
今回はこのメニューをドロップダウンさせるカスタマイズを紹介します。

ドロップダウンは2段階(第3階層の表示)まで対応しました。

IE6以下を無視すればCSSのみでドロップダウンが可能なのですが、まだまだ無視できる数ではないため一部JavaScriptを用いています。

HTMLを編集します。
赤とオレンジの部分が新たに追加した箇所です。
第3階層まで必要ない場合はオレンジ部分を削除してください。

<!--▼ メニューバー ▼-->
<ul id="menu_bar">
<li><a href="<%url>">トップページ</a></li>
<li><a href="<%url>archives.html">サイトマップ</a></li>
<li><a href="<%url>blog-entry-1.html">記事1</a></li>
<li><a href="<%url>blog-entry-2.html">記事2</a></li>
<li><a href="<%url>blog-category-1.html">カテゴリ1</a></li>
<li><a href="<%url>blog-category-2.html">カテゴリ2</a></li>
<li><a href="<%url>blog-category-3.html">カテゴリ3</a></li>

<li class="menu" onmouseover="this.className='menu_on'" onmouseout="this.className='menu'"><a href="#">第1階層</a>
<ul>
<li><a href="#">第2階層</a></li>
<li><a href="#">第2階層</a></li>
<li><a href="#">第2階層</a></li>
<li class="menu" onmouseover="this.className='menu_on'" onmouseout="this.className='menu'"><a href="#">第2階層</a>
<ul>
<li><a href="#">第3階層</a></li>
<li><a href="#">第3階層</a></li>
<li><a href="#">第3階層</a></li>
</ul>

</li>
</ul>
</li>


</ul>
<!--▲ メニューバー ▲-->



次にスタイルシートの末尾に以下を加えてください。
既にメニューバーを実装済みの方は赤い部分のみ追加してください。

/* ▼メニューバー▼ */
ul#menu_bar {
font-size: 80%; /* 文字サイズ */
height:25px; /* 高さ */
background-color:#000000; /* 背景色 */
padding-left:0px;
margin-left:0px;
margin-top:0px; /* 上の間隔 */
margin-bottom:5px; /* 下の間隔 */
}

#menu_bar li {
list-style-type:none;
float:left;
line-height:25px; /* 高さ */
margin:0px;
padding:0px;
}

#menu_bar li a {
display:block;
text-align:center;
width:100px; /* 1つのメニューボタンの幅 */
border-right:1px solid #333333; /* 区切り線 */
color:#ffffff; /* リンク文字の色 */
background-color:#000000; /* メニューボタンの背景 */
text-decoration:none;
}

#menu_bar li a:hover{
color:#ffffff; /* マウスが乗ったときのリンク文字の色 */
background-color:#222222; /* マウスが乗ったときの背景色 */
text-decoration:none;
}
/* ▲メニューバー▲ */

/* ▼メニューバー(ドロップダウン)▼ */

#menu_bar ul {
position:absolute;
margin:0;
padding:0;
}

#menu_bar li {
position:relative;
margin:0;
padding:0;
}

#menu_bar li ul li {
float:none;
}

#menu_bar li.menu ul,
#menu_bar li.menu ul li.menu ul,
#menu_bar li.menu_on ul li.menu ul {
display:none;
}

#menu_bar li.menu_on ul {
position:absolute;
display:block;
top:100%;
left:0;
}

#menu_bar li.menu_on ul li.menu_on ul {
position:absolute;
display:block;
top:0;
left:100%;
}

/* ▽IE6バグ対応▽ */
* html #menu_bar li li,
* html #menu_bar li li li {
font-size:1px;
line-height:0;
}
* html #menu_bar li li a,
* html #menu_bar li li li a {
display:block;
font-size:10pt;
line-height:25px;
}
/* △IE6バグ対応△ */

#menu_bar li li a,
#menu_bar li li li a {
border-top:1px solid #111111; /* 区切り線 */
}

/* ドロップダウンリストの透過(IE6以下未対応) */
#menu_bar > li > ul {
filter:alpha(opacity=90);
-moz-opacity: 0.9;
opacity: 0.9;
}

/* ▲メニューバー(ドロップダウン)▲ */


これでドロップダウンメニューが出来ます。
区切り線ドロップダウンリストの透過はお好きな様に設定してください。

ドロップダウンは2段階(第3階層の表示)まで対応しているので、親子カテゴリの表示に利用しても良さそうですね。


【2009/08/04 追記】
filter:alpha(opacity); を使うと、IE7,8で第3階層が表示されませんでした。スタイルシートからこれを削除してください。
申しわけございません。m(__)m
また、第2、第3階層のメニュー幅をそれぞれ設定したい場合は、スタイルシートの末尾に以下を加えてください。

/* 第2階層の幅 */
#menu_bar li li a {
width:150px;
}

/* 第3階層の幅 */
#menu_bar li li li a {
width:150px;
}


ただし第3階層の始点は、第2階層の終点より少しずれた位置になってしまうのでご了承ください。
[ 4786 ]
有難うございます。
[ 2009/07/03 21:05 ] [ 編集 ]
[ 4787 ]
ドロップダウンさせているメニューを最後尾ではなく、左から2つ目や3つ目にもってくる方法を教えてください。
[ 2009/07/03 21:08 ] [ 編集 ]
[ 4789 ] > YONEさん、Geckoさん
> YONEさん
大変お待たせしました m(__)m

> Geckoさん

左から2番目をドロップダウンしたければ、赤い部分を

<!--▼ メニューバー ▼-->
<ul id="menu_bar">
<li><a href="<%url>">トップページ</a></li>

の下に挿入してください。
左から3番目をドロップダウンしたければ

<!--▼ メニューバー ▼-->
<ul id="menu_bar">
<li><a href="<%url>">トップページ</a></li>
<li><a href="<%url>archives.html">サイトマップ</a></li>

の下に挿入してください。
[ 2009/07/03 23:59 ] [ 編集 ]
[ 4804 ] できませんでした^^;
前回、ドロップダウンなしの時には
できたんですが、一時期メニューバーを
外していたので再度やり直したんですが

メニューバーの最後に「第1階層」という
メニューボタンが出てしまうのと
ドロップダウンができなかったので
いったんタグを外した状態で
ここに書き込んでいます

貼り方がおかしかったんでしょうか?
初心者の単純ミスなんでしょうか?
忙しい時にすいません
[ 2009/07/04 18:52 ] [ 編集 ]
[ 4806 ] > ASPさん
ドロップダウンを使うことにしたんですね。

その「第1階層」とでるメニューこそがドロップダウンメニューなのですが、記事のHTML,CSSを貼付けてもドロップダウンしなかったということでしょうか?
[ 2009/07/04 19:04 ] [ 編集 ]
[ 4809 ] もう一度
そうだったんですか^^;
すいませんでした

もう一度やってみます
[ 2009/07/04 20:57 ] [ 編集 ]
[ 4813 ]
いまいちわかりません・・・
成功するとどんな感じですか?
[ 2009/07/04 22:05 ] [ 編集 ]
[ 4814 ] > YONEさん
YONEさんの環境では、メニューバーの一番右にある「第1段階」にマウスを乗せてもドロップダウンしないですか?

こちらから(FireFox,IE6)はドロップダウンするのが確認できるのですが・・・

OS,ブラウザは何ですか?
[ 2009/07/04 22:54 ] [ 編集 ]
[ 4826 ]
Fire Fox3はドロップダウンしないですか?
全部表示されてごちゃごちゃになりました

IEならできましたがFireFox派なので
とりあえずFire Foxを3.5にしたら直りました。

なぜですかねFire Fox3は未対応ですか?
[ 2009/07/05 12:29 ] [ 編集 ]
[ 4827 ] > YONEさん
私の環境だとFirefox3でもドロップダウンするのですが・・・
更新(Ctrl+F5)させても反映されなかったのでしょうか?
[ 2009/07/05 14:44 ] [ 編集 ]
[ 4868 ]
ちゃんと出来るようになったっぽいです

ありがとうございます。
[ 2009/07/08 18:48 ] [ 編集 ]
[ 5284 ]
ドロップダウンされた各メニューの幅をメニューバーの各メニューの幅より広く表示できないのでしょうか?
[ 2009/08/04 11:27 ] [ 編集 ]
[ 5289 ] > naokiさん
記事に追記したのでこちらを参考にしてください。

メニューバーのドロップダウン【2009/08/04 追記】

http://10plate.blog44.fc2.com/blog-entry-230.html#add20090804
[ 2009/08/04 20:40 ] [ 編集 ]
[ 5297 ] >いたおさん
素早い対応ありがとうございます。
無事変更することができました。
[ 2009/08/05 13:14 ] [ 編集 ]
[ 5307 ] > naokiさん
2階層目の幅が変更できましたね。良かったです^^
[ 2009/08/05 23:36 ] [ 編集 ]
[ 6495 ] おはようございます。
<li><a href="#">第2階層</a></li>
<li><a href="#">第2階層</a></li>
<li><a href="#">第2階層</a></li>

<li><a href="#">新着記事1</a></li>
<li><a href="#">新着記事2</a></li>
<li><a href="#">新着記事3</a></li>
のように、新着記事を表示することは出来ますでしょうか?
さらに、カテゴリー別にもやりたいのですが。
どうでしょうか。
[ 2009/10/16 08:55 ] [ 編集 ]
[ 6502 ] 自力で
自力で何とか新着記事は出来ました。
これをカテゴリーでもやりたいのですがどうでしょうか?
[ 2009/10/16 18:17 ] [ 編集 ]
[ 6507 ] > さくらいさん
記事を掲載したのでこちらを参考にしてください。

メニューバーのドロップダウンにカテゴリを表示
http://10plate.blog44.fc2.com/blog-entry-318.html

どうもドロップダウンの中にリンクタイトル<a title="〜">を入れると、時々うまく動作しないことがあるようなので外しました。
[ 2009/10/16 20:49 ] [ 編集 ]
[ 7105 ]
やってみたのですが、
第2階層と第3階層がかさなってしまって、
見にくいです。
第3階層を右にずらすにはどうしたらよいですか?
相互リンクのところです。
[ 2009/11/22 17:50 ] [ 編集 ]
[ 7107 ]
上の付け出しで、
IEではかさならないのですが、
Firefoxで見ると重なってしまいます。
[ 2009/11/22 18:21 ] [ 編集 ]
[ 7117 ] > masa173さん
このカスタマイズを施しているようですね。

横メニューバーを幅一杯に表示する(リキッドレイアウト)
http://10plate.blog44.fc2.com/blog-entry-186.html

このカスタマイズを元に戻してみてください。
[ 2009/11/23 13:55 ] [ 編集 ]
コメントの投稿












管理者にだけ表示を許可する
※鍵コメは連絡先(URL)が無ければ答えられないのでご了承ください。
トラックバック
この記事のトラックバックURL

ブログ内検索1
ブログ内検索2
プロフィール

Author:いたお
更新は非常にマイペースです^^;

当サイトはリンクフリーです。
カレンダー
10 | 2009/11 | 12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
なんでもスクロール
このように
縦に長く伸びた
プラグインを
スクロールバーによって
一定の長さに
抑えることが
出来ます。

※スクロールさせる文字やプラグインのHTMLをここに
今日の日付入りカレンダー

10 | 2009/11 | 12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 - - - - -
ユーザータグ


△ ページトップへ戻る