HTML
<ol>
<li>item1
<ol>
<li>item2</li>
</ol>
</li>
<li>item1
<ol>
<li>item2</li>
<li>item3</li>
</ol>
</li>
</ol>
SCSS
ol {
counter-reset: item;
li {
display: block
}
li:before {
content: counters(item, ".") ". ";
counter-increment: item
}
}
现在列表的排序如下:
- ITEM1
醇>1.1。 ITEM2
- ITEM1
醇>2.1。 ITEM2
2.2。项目3
有什么方法可以在列表开始时按一级增加排序吗?第二个<ol>
将以2
开头: 2.1。 ITEM1
1.1。 ITEM1
1.1.1。 ITEM2
1.2。 ITEM1
1.2.1。 ITEM2
1.2.2。项目3
-------同一父母的第二个人---------
2.1。 ITEM1
2.1.1。 ITEM2
2.2。 ITEM1
2.2.1。 ITEM2
2.2.2。项目3
答案 0 :(得分:4)
你可以设置一个额外的计数器,只在外部列表上更新它(可以通过body > ol
选择)
body {
counter-reset: outer;
}
body > ol {
counter-increment: outer;
}
ol {
counter-reset: item;
}
ol li {
display: block;
}
ol > li:before {
content: counter(outer)"." counters(item, ".")". ";
counter-increment: item;
}
<ol>
<li>item1
<ol>
<li>item2</li>
</ol>
</li>
<li>item1
<ol>
<li>item2</li>
<li>item3</li>
</ol>
</li>
</ol>
<ol>
<li>item1
<ol>
<li>item2</li>
</ol>
</li>
<li>item1
<ol>
<li>item2</li>
<li>item3</li>
</ol>
</li>
</ol>
答案 1 :(得分:1)
不确定这是否有用但是;刚刚通过CSS实现了这一点。必须在CSS中指定起始值,以便它可能对您不起作用。
CSS:
body ol {
list-style-type: none;
counter-reset: level1 50;
}
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;
}
在这种情况下,你会得到:
50项目
50.1子项目
答案 2 :(得分:1)
您可以尝试使用反重置属性(http://www.w3schools.com/cssref/pr_gen_counter-reset.asp)
你会在封闭元素上声明:counter-reset: section;
然后:
ol li { counter-reset: subsection; }
ol li:before {
counter-increment: section;
content: counter(section) ".";
}
ol li ol li { counter-reset: subsection; }
ol li ol li:before {
counter-increment: subsection;
content: counter(section) "." counter(subsection) ".";
}
etc...