Home > Movable Type | XHTML CSS > メニューのXHTML 3パターン

メニューのXHTML 3パターン

この記事はMAQUE Movable Type テンプレートのカスタマイズTipsとして書いた記事ですが、Movable Typeに共通する内容なのでBazookaでエントリーを投稿する事にしました。

Movable Typeは、Menu部分の構成をテンプレートから自由にカスタマイズ出来るのですが、XHTMLの仕様に沿っていて、無駄なく、尚且つカスタマイズしやすい構成となると、ここで紹介するようなパターンに絞られてきます。

紹介するMovable TypeのMenu部分のソースは、

  • XHTML Strict DTDに準拠している
  • 無駄な要素を作らない
  • CSSによるデザインの柔軟性が高い
  • CSSで、2カラム、3カラムのレイアウトが出来る

という条件で構成しました。

Type1. 定義リスト DL

Menu全てをdiv要素で包み、その子供に2つのdl要素があります。左のdl#navigation、右のdl#othersとする事で、1つのMenuを2カラムにでも3カラムにでも出来るようにする為です。

element Tree

イイトコロ

全体的にシンプルなマークアップで済ませられる所がイイトコロ。3カラムのためにサイドバーを2つに分ける必要が無いのなら、dlを頂点とした1つのセットでMenuを構成する事も出来ます。そしたら更にシンプル度アップ。

イヤナトコロ

dtには項目のタイトルが入るのですが、このdtddがXHTMLでグループに出来ないため、CSSで1setとして表現するような扱いに苦労します。

Type2. 入れ子ul

MAQUE Movable Type テンプレートのデフォルトのMenu構成です。

Type1と同じように、2カラム3カラムが出来るようにdiv要素を2つの要素 (ul要素)で分けています。

element Tree

イイトコロ

これも全体的にシンプルなマークアップで済ませられる所がイイトコロ。また、各項目はli要素の中に納まっている為、CSSでの装飾にも柔軟性があります。3カラムのためにサイドバーを2つに分ける必要が無いのなら、ulを頂点とした1つのセットでMenuを構成する事も出来ます。そしたら更にシンプル度アップ。

イヤナトコロ

ulliが入れ子構造を持っていますので、CSSでの記述が少々ややこしくなります。

<ul id="utilities">

 <li>Entries
  <ul>
   <li>Entry1</li>
   <li>Entry2</li>
   <li>Entry3</li>
  </ul>
 </li>
  
  <li>Categories
   <ul>
    <li>Category1</li>
    <li>Category2</li>
    <li>Category3</li>
   </ul>
  </li>
  
</ul>

まず、上のソースを見て下さい。これは入れ子のulで構成したメニューですが、EntriesとCategoriesをそれぞれ枠線で囲いたいと思って ul#utilities li {border: 1px solid black;}と書くと、中にある2階層目のli要素(3つのentryと3つのcategory)にまで枠線が引かれることになります。この中のli要素に枠線を消すためには、ul#utilities li li{border: none;}と書き足さなければなりません。

CSSで子孫セレクターを理解していないと、「なんでこっちにまでマージンついてるの!あーんもう」ってなってしまいます。

MAQUE Movable Typeを使っている人で、特に専用スキンを使うつもりも無く自分でスタイルを作る人は、他のメニュー構成に変更したほうがいいかもしれない。けど、これはこれで勉強になるし、シンプルだしカスタマイズ性も高いんだけどナ

ま、子供セレクタul#utilities >li {border: 1px sold red;}と書けるようになる時代を待ちましょう。(子供セレクタ : IE6は使えない。-_-;)

Type3. divでグルーピング

これも他と同じように、div要素の子供に2つのdivを作り、2カラム,3カラムが出来るようにしてあります。

div要素をグループ化の為に使用していますので、divの数は多くても、所謂div中となりませんので安心して下さい。

element Tree

イイトコロ

各項目がdiv要素で纏められており、項目のタイトルはh3、タイトルに連なるリストはulとして独立していますので、CSSでの装飾の柔軟性が高いです。これで実現できないメニューの見栄えがあったら、見栄えのデザインほうを見直したほうが良いといえるぐらい自由に装飾出来ます。

イヤナトコロ

div要素で細かく構造化しているだけあって、ここで紹介した他の2つよりはソースが長くなってしまいます。

ちゅうい。

Downloadできるtxtファイルは、メニュー部分のソースしか書かれていません。また、表示したい項目によってソースを調整する必要があります。

MAQUE向け

MAQUE テンプレート用の配布スキンは、「Type2. 入れ子ul」のXHTMLに対してCSSが記述されていますので、他の構成にした場合は表示が崩れます。

Comments:1

Comment Form
wu 2006年3月24日 05:08

a-寝れぬ存ぜぬ。

ulの入れ子難しいかもなぁ。
デフォをType3の項目divグループに切り替えようか悩み中。

Trackbacks:0

TrackBack URL for this entry
http://3ping.org/mt/mt-tb.cgi/68
Listed below are links to weblogs that reference
メニューのXHTML 3パターン from 3ping.org

Home > Movable Type | XHTML CSS > メニューのXHTML 3パターン

Book

実践 Web Standards Design

拙著「実践 Web Standards Design」ではXHTMLやCSSの仕様からマークアップの手法・考え方をはじめ、レイアウトや実践的なWebサイト構築のワークフロー、そしてCSSを利用したさまざまな技術的Tipsを解説しています。

Products
Works

テクノスカレッジ 専門学校

mt.Vicuna x 専門学校

2009年度に向けた学院サイトを制作しました。

Search
Feeds

Return to page top