这是使用标准 CSS 2.1 的一种方法。
HTML 与您的相似,只是为了方便起见我定义了一些类:
<ol class="level-1" type="1">
<li>First</li>
<li>Second
<ol class="level-2" type="a">
<li>Third</li>
<li>Fourth
<ol class="level-3" type="1">
<li>Fifth</li>
</ol>
</li>
<li>Sixth</li>
</ol>
</li>
<li>Seventh</li>
</ol>
对于 CSS,我定义了 3 个自定义计数器(cnt-1、cnt-2、cnt-3)并使用 content 属性来显示自定义格式的标签:
ol.level-1 {
counter-reset: cnt-1;
list-style: none;
}
ol.level-1 li:before {
content: counter(cnt-1)".";
counter-increment: cnt-1
}
ol.level-2 {
counter-reset: cnt-2;
list-style: none;
}
ol.level-2 li:before {
content: counter(cnt-1)"."counter(cnt-2,lower-alpha);
counter-increment: cnt-2
}
ol.level-3 {
counter-reset: cnt-3;
list-style: none;
}
ol.level-3 li:before {
content: counter(cnt-1)"."counter(cnt-2,lower-alpha)"."counter(cnt-3);
counter-increment: cnt-3
}
ol li:before {
display: inline-block;
margin-right: 5px;
}
您可以在以下位置查看演示:http: //jsfiddle.net/audetwebdesign/TJYVf/
带有边距和内边距的确切样式将取决于您的特定布局需求,但这个演示说明了这个概念。