- ベストアンサー
HTMLの行番号付きリスト | 階層構造の表示と開閉機能
- HTMLのUL,LIを使用して階層構造を表現し、行番号を付ける方法について紹介します。
- javascriptを使って階層構造を閉じたり、開いたりする機能についても解説します。
- 行番号を付けるプログラムが必要な場合は、特定のサイトを探すことをおすすめします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
<ul> <li>トップ</li> <li>書籍 <ul> <li>書籍A</li> <li>書籍B</li> </ul> </li> <li>製品 <ul> <li>工具</li> <li>工具2</li> </ul> </li> </ul> ul li:before{content:counter(chapter);position:bsolute;} ul li ul li:fter{content:"(項目" counter(section)"-" countersub ")";} とか・・ 開閉も含めて、スタイルシートで行なうほうが簡単です。 1 トップ(項目1) 2 書籍A(項目2) 5 製品B(項目3) 開く 1 トップ(項目1) 2 書籍(項目2) 3 書籍A(項目2-1) 4 書籍B(項目2-2) 5 製品(項目3) ⇒'content'( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/generate.html#propdef-content ) beforeおよび:after疑似要素( http://momdo.s35.xrea.com/web-html-test/spec/CSS21/selector.html#before-and-after )
その他の回答 (1)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
それほど、難しくはないように感じます。 1 階層1 A 2 階層1-1 B 3 階層1-1-1 4 階層1-2 5 階層2 AとBの位置に、クリックすると、 visibility:hidden; visibility:visible; が交互に切り替わるようにCSSを挿入すればよいだけに見えます。 意味が違ったらすいません。
補足
ありがとうございます 参照したページから LI:before { content: counter(item) ". "; counter-increment: item } の一文を引用しましたが、適用すると、番号は 1. トップ 1. 書籍 2. 書籍A 3. 書籍B 1. 製品 2. 工具 3. 工具2 のように、ULの場所でリセットされます UL { counter-reset: item } LI:before { content: counter(item) ". "; counter-increment: item } の二文を適用すると、番号は 1. トップ 2. 書籍 1. 書籍A 2. 書籍B 3. 製品 1. 工具 2. 工具2 のようになります すべて連番にしたいので、 最初の例のように、一文を適用するだけでLIをカウントしてくれそうなのですが なにか足りないのでしょうか UL LI:before { content: counter(item) ". "; counter-increment: item } と頭にULを付けても最初の例と同じでした よろしく、お願いします