3カラムレイアウトをナビゲーションバー部分に適用する
タイトルバナー下にナビゲーションバーを設置している場合、その左右に別の部品を並べて配置したい時のテクニックです。
ここでは、以前紹介した「ナビゲーションバー・シンプルタイプ」に「サイドバーの折りたたみ」の折りたたみマークを合体させ、ナビゲーションバーの左右に折りたたみマークを配置するカスタマイズを紹介します。
下記にサンプルを用意しました。
ナビゲーションバーにサイドバーの折りたたみマークを並べて表示
以下、基本構造および公開テンプレートによるサンプルで説明します。仕組みはタイトルの通り、3カラムレイアウトのCSSをナビゲーションバー部分に適用しています。
ナビゲーションバーの他、横型カレンダーとの組み合わせも(多分)可能です。
1.基本構造
1.1 HTML
HTMLマークアップは次のようになります。ul - li 要素は div 要素でも問題ありません。下から2行目の br 要素(の class 属性)は回り込み解除のため必須です。
<div id="navi"> <ul id="left"><li>[左に表示する部品]</li></ul> <ul id="navbar"><li>[中央に表示する部品]</li></ul> <ul id="right"><li>[右に表示する部品]</li></ul> <br class="clear" /> </div>- リスト1.1 基本的なHTML
1.2 スタイルシート
下記の通りです。基本的な構造は3カラム固定レイアウトと同じです。
#navi { padding: [部品全体のパディング]; } #navi ul { margin: 0; padding: 0; float:left; } #navi ul, #navi ul li { display: inline; } #navbar { width: [中央に配置する部品の幅]; text-align: center; } #left { width: [左に配置する部品の幅]; } #right { width: [右に配置する部品の幅]; } .clear { clear: both; }- リスト1.2 基本的なCSS
2.ナビゲーションバーとサイドバーの折りたたみマークを合体
サイドバーの折りたたみ用タグ
<div id="navi"> <ul><li id="leftmark"><a href="javascript:void(0);" onclick="changeSidebar('left');"><</a></li></ul> <ul><li id="rightmark"><a href="javascript:void(0);" onclick="changeSidebar('right');">></a></li></ul> </div>- リスト2.1 サイドバーの折りたたみ用タグ
と、ナビゲーションバーのタグ
<div id="navbar"> <a href="<$MTBlogURL$>" title="Home">Home</a> | <a href="<$MTBlogURL$>about.html" title="About">About</a> | <a href="<$MTBlogURL$>profile.html" title="Profile">Profile</a> | <a href="<$MTBlogURL$>link.html" title="Link">Link</a> | <a href="<$MTBlogURL$>search.html" title="Search">Search</a> | <a href="mailto:hogehoge@hogehoge.com" title="Mail">Mail</a> </div>- リスト2.2 ナビゲーションバーのタグ
を合体すると下記のようになります。ナビゲーションバー部分は青で示しています。
<div id="navi"> <ul><li id="leftmark"><a href="javascript:void(0);" onclick="changeSidebar('left');"><</a></li></ul> <div id="navbar"> <a href="<$MTBlogURL$>" title="Home">Home</a> | <a href="<$MTBlogURL$>about.html" title="About">About</a> | <a href="<$MTBlogURL$>profile.html" title="Profile">Profile</a> | <a href="<$MTBlogURL$>link.html" title="Link">Link</a> | <a href="<$MTBlogURL$>search.html" title="Search">Search</a> | <a href="mailto:hogehoge@hogehoge.com" title="Mail">Mail</a> </div> <ul><li id="rightmark"><a href="javascript:void(0);" onclick="changeSidebar('right');">></a></li></ul> </div>- リスト2.3 同時に表示させる場合のタグ
これだけでは横1列に並んで表示されないため、1項と同じ構造にするため、赤色部分を追加します。
<div id="navi"> <ul id="left"><li id="leftmark"><a href="javascript:void(0);" onclick="changeSidebar('left');"><</a></li></ul> <ul id="navbar"><li> <a href="<$MTBlogURL$>" title="Home">Home</a> | <a href="<$MTBlogURL$>about.html" title="About">About</a> | <a href="<$MTBlogURL$>profile.html" title="Profile">Profile</a> | <a href="<$MTBlogURL$>link.html" title="Link">Link</a> | <a href="<$MTBlogURL$>search.html" title="Search">Search</a> | <a href="mailto:hogehoge@hogehoge.com" title="Mail">Mail</a> </li></ul> <ul id="right"><li id="rightmark"><a href="javascript:void(0);" onclick="changeSidebar('right');">></a></li></ul> <br class="clear" /> </div>- リスト2.4 同時に表示させる場合のタグを修正
これに下記のCSSをスタイルシートに追加します。折りたたみマークは text-align プロパティで一旦両端に配置してから padding プロパティで位置を調整しています。
#navi { border-bottom: 1px solid #666699; padding: 3px 0; font-size: 12px; } #navi ul { margin: 0; padding: 0; float:left; } #navi ul, #navi ul li { display: inline; } #navbar { width: 600px; _width: 598px; text-align: center; } #left { width: 125px; text-align: left; } #left li { padding-left: 18px; } #right { width: 125px; text-align: right; } #right li { padding-right: 18px; }- リスト2.5 同時に表示させる場合のCSS
以上です。やっつけで作ったものですので誤りがありましたらお許しを。
- サブカテゴリーリストを定義型リストでマークアップする
- CSS でブログ本文の画像だけをセンタリングする
- CSS の画像置換で画像にリンクを設定する
- XREA のバナー広告を固定レイアウトのヘッダに表示する
- Web標準XHTML+CSSデザイン クリエイターが身につけておくべき新・100の法則。
- グローバルナビゲーション(その1:基本スタイル)
- RSS フィードにスタイルシート(CSS)を適用する
- 「追記文章の折りたたみ 2.0」でIE7の不具合を解消する
- サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
- 公開テンプレートにフッタを追加する(2カラム版)
- CSS の after 擬似要素で回り込みを解除する
- テンプレートカスタマイズ支援ツール Column Resizer
- サイドバーのタイトル背景をカラム幅にあわせて表示する
- 公開テンプレートのサイドバーのカラム幅を変更する
- JavaScript 不要な月別アーカイブの年別ツリー化+折りたたみ
- CSSでブログに影をつける - ドロップシャドウ画像ファイルの作り方
- CSSでブログに影をつける(ドロップシャドウ)
- IE7 の CSS ハック
- CSSでブロックレベル要素をセンタリングする
≫ ナビゲーションバーとサイドバーの折りたたみ from Laspalabras De Amor
当初、ウチのブログ上では、サイドバーの折りたたみのマークとナビゲーションバーが一... [続きを読む]
エントリーして下さって有難うございました!早速取り入れました。
これからも参考にさせていただきます。勝手にリンクもさせて頂きました。有難うございました。
追加です。
実はトラックバックを送ったのですが、送れませんでしたのでコメントさせていただきました。
何度もごめんなさい(汗)
説明通りしましたけどまったく動作しません? サポート宜しくお願いします。
>shuさん
こんばんは。
ご利用&ご連絡ありがとうございました。
うまくできたようでよかったです。
>panserさん
こんばんは。
サイトを拝見させて頂きましたが現在何も設定されていないようですので、設定された状態で再度コメント頂けますでしょうか。
それではよろしくお願い致します。

