2007年3月 1日
サブカテゴリーリストのツリー画像で親カテゴリーのみ異なる画像を表示する
先日エントリーした「CSS 変更(2007.02.11)」でお知らせした通り、サブカテゴリーリストの親カテゴリーだけ異なる画像を表示させるカスタマイズをご紹介致します。

この変更を行なえば、ツリー画像が各親カテゴリー内に閉じた形で表示されるようになります。またカテゴリー表示が長大になる場合、従来の表示では親カテゴリーのツリー画像が途切れる可能性が高かったのですが、この方法であればある程度問題なく表示されると思います。
変更方法は、CSS の修正と親カテゴリー用の画像の用意です。
元のサンプルは「サブカテゴリーリストの折りたたみ+ツリー化 for Movable Type」を利用していますが、CSS についてはブログツール・ブログサービスに依存しませんので、変更箇所を確認しながら修正してください。
スクリーンショットの完成例で使用している親カテゴリーのリストマークは、下記から頂きました。
全く同じマークは下から 30 番目あたりにあります。
下記にスクリーンショットと同じ変更をした CSS を示します。変更箇所は赤、追加は青で示していますが、お好みに応じて適宜修正してください。
変更前
ul.tree {
margin: 0 0 0 5px;
padding: 0;
font-size: 9px;
list-style: none;
}
ul.tree ul {
margin: 0;
padding: 0;
}
ul.tree li {
margin: 0;
padding: 0 0 0 13px;
background: url(tree_lst.gif) no-repeat 2px 0;
list-style: none;
}
ul.tree li.tree_end {
background: url(tree_end.gif) no-repeat 2px 0;
list-style: none;
}
変更後
ul.tree {
margin: 0 0 0 3px;
padding: 0;
font-size: 9px;
list-style: none;
}
ul.tree ul {
margin: 0;
padding: 0;
}
ul.tree li {
margin: 0px;
padding: 0 0 0 17px;
background: url([親カテゴリー用画像ファイル]) no-repeat 1px 0.15em;
list-style: none;
}
ul.tree li li {
margin: 0;
padding: 0 0 0 15px;
background: url(tree_lst.gif) no-repeat 4px 0;
list-style: none;
}
ul.tree li li.tree_end {
background: url(tree_end.gif) no-repeat 4px 0;
list-style: none;
}
ご覧の通り、親カテゴリー用の li 要素セレクタと、子カテゴリー用の li 要素セレクタを分割しています。子カテゴリーは、li 要素セレクタを重ねて指定し、li 要素が再帰的に出現する場合のみ、ツリー画像を表示するようにしています。
参考までにサンプルのHTMLマークアップも掲載しておきます。折りたたみ用の div 要素が含まれてやや複雑になってますが予めご了承ください。
<ul class="tree">
<li class="tree">
<div class="subcategories" id="subcategories9name"><a href="..." title="9">ブログ</a> [1]</div>
<div id="subcategories9list">
<ul class="tree">
<li class="tree_end">
<div class="subcategories" id="subcategories10name"><a href="..." title="10">Movable Type</a> [1]</div>
<div id="subcategories10list">
<ul class="tree">
<li class="tree"><a href="..." title="11">カスタマイズ</a> [1]</li>
<li class="tree_end"><a href="..." title="12">テンプレート</a> [2]</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li class="tree">
<div class="subcategories" id="subcategories1name"><a href="..." title="1">日記</a> [1]</div>
<div id="subcategories1list">
<ul class="tree">
<li class="tree_end"><a href="..." title="2">食事</a> [1]</li>
</ul>
</div>
</li>
<li class="tree_end">
<div class="subcategories" id="subcategories3name"><a href="..." title="3">趣味</a> [1]</div>
<div id="subcategories3list">
<ul class="tree">
<li class="tree">
<div class="subcategories" id="subcategories5name"><a href="..." title="5">パソコン</a> [1]</div>
<div id="subcategories5list">
<ul class="tree">
<li class="tree"><a href="..." title="7">Linux</a> [1]</li>
<li class="tree_end"><a href="..." title="8">Windows</a> [1]</li>
</ul>
</div>
</li>
<li class="tree_end">
<div class="subcategories" id="subcategories4name"><a href="..." title="4">車</a> [1]</div>
<div id="subcategories4list">
<ul class="tree">
<li class="tree_end"><a href="..." title="6">VW</a> [1]</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
</ul>
Comments [29]
| Trackbacks [1]

