【发布时间】:2013-05-31 01:00:43
【问题描述】:
我正在编写一个二分键:一个有序的切换列表,每个级别有两个选项可供选择。嵌套项目以后不能重复编号,而是增加编号。数字需要附加'a'和'b':
1a.
2a.
3a.
3b.
2b.
4a.
4b.
1b.
5a.
6a.
6b.
5b.
7a.
7b.
基本的 HTML 有序列表:
<ol>
<li>1a
<ol>
<li>2a
<ol>
<li>3a</li>
<li>3b</li>
</ol>
</li>
<li>2b
<ol>
<li>4a</li>
<li>4b</li>
</ol>
</li>
</ol>
<ol>
<li>1b
<ol>
<li>3a
<ol>
<li>5a</li>
<li>5b</li>
</ol>
</li>
<li>2b
<ol>
<li>6a</li>
<li>6b</li>
</ol>
</li>
</ol>
嵌套项需要切换可见性,这可以通过 JQuery 和 display:none DIV 来完成,但是有没有办法避免 DIV?除非每个列出的项目都自动放置在 DIV 中,否则键太大而无法使用“1a”、“1b”进行编号。
JQuery 切换:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
function toggleDiv(divId) {
$("#"+divId).toggle();
}
</script>
随附的 CSS:
.display {display:none;
padding-left: 30px;
}
我需要什么样的 JQuery 和 CSS 反制组合才能让嵌套项目在停止的地方重新开始编号,而不是重新启动它?嵌套需要无限深,同时在列表中的任何地方都不能重复数字。
如何调整以下 CSS 以添加字母,而不是十进制数字?:
<style>
html>/**/body ol { /* Won't be interpreted by IE6/7. */
list-style-type: none;
counter-reset: level1;
}
ol li:before {
content: counter(level1) ". ";
counter-increment: level1;
}
ol li ol {
list-style-type: none;
counter-reset: level2;
}
ol li ol li:before {
content: counter(level1) "." counter(level2) " ";
counter-increment: level2;
}
ol li span { /* For IE6/7. */
margin: 0 5px 0 -25px;
}
</style>
已询问有关嵌套列表或更改编号样式的问题,但我找不到具有这种非重复编号和切换选项的问题。见-Nested ordered lists和Slide Toggle nested ordered list
【问题讨论】:
-
为什么要避免使用 div?或者你有其他元素可以让 div 变得多余吗?请也向我们展示您的标记。
-
使用 DIV,我可以获得带有缩进的嵌套列表的外观,但我需要一个正确的有序列表,其编号不重复。我添加了我拥有的 JQuery 和 CSS。
-
您目前使用什么 CSS 进行编号?再次,请向我们展示您的 HTML 标记。
-
我添加了一个有序列表的HTML,以及之前分享过的CSS countering,但是如何添加字母呢? CSS可以提供不重复的数字吗?谢谢你的帮助;这个问题越来越大了。
-
感谢您的标记,我会写一个答案。顺便说一句,你忘了在第二层关闭一些
<ol>s。
标签: javascript jquery css list toggle