ども。鉄王です。
かねてやってみたいと思っていた(といってもたいそうなことではないが)jQueryを使ってのパンくずリスト実装、という実験のレポートです。
今まで、パンくずリストを作るとき、わりとよく知られる方法にしたがって
<ul>
<li>第1階層のタイトル</li>
<li>></li>
<li>第2階層のタイトル</li>
<li>></li>
<li>第3階層のタイトル</li>
</ul>
みたいな感じで、セパレータまで一緒に<li>タグに入れ、CSSのdisplayプロパティで横一列に並べるということをやってました。
でも、考えてみるとこれって変。
セパレータ自体、文書の要素として特に意味を持っているものではないので、本来であれば<li>タグでマークアップするべきものではないんですよね。ここはやはり、ページタイトルだけを<li>で並べたい。
そんなふうにモヤモヤ思いながら、なんとかすっきりと解決できないか……と考えた結果が、jQueryを使っての実装でした。グダグダなソースで恐縮ですが、備忘録を兼ねて掲載しておきます。ご利用は計画的に
なお、jQuery本体は1.2.6を使用。IE 6・7とFirefox 2・3、Safari 3で検証ずみです。
■HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>jQueryの疑似クラス指定でパンくずリストを作ってみるテスト</title>
<link rel="stylesheet" href="./style.css" type="text/css" media="screen" />
<script type="text/javascript" src="./jquery.js"></script>
<script type="text/javascript" src="./config.js"></script>
</head>
<body>
<div id="footprint">
<p><strong>現在位置:</strong></p
><ol
><li><a href="#">第1階層のタイトル</a></li
><li><a href="#">第2階層のタイトル</a></li
><li>第3階層のタイトル</li
></ol>
</div>
</body>
</html>
■CSS(style.css)
@charset "UTF-8";
#footprint p {
display: inline;
}
#footprint ol {
display: inline;
margin-left: 0em;
padding-left: 0em;
}
#footprint ol li {
display: inline;
list-style: none;
}
.separator {
padding: 0em 0.5em 0em 0.5em;
}
■jQueryの設定ファイル(config.js)
$(function() {
$(’#footprint ol li:not(:last)’).append(’<span class="separator">></span>’);
});
jQuery: The Write Less, Do More, JavaScript Library
http://jquery.com/
Leave a reply