我需要 HTML 来生成类似于以下内容的输出:
1.一些标题 1.1 胡说八道 (a) 呜呜呜 (b) 胡说八道 1.2 胡说八道
我相信由于需要在字母周围加上括号,我不能为此使用有序列表标签。显然它可以用表格来完成,但我更愿意使用 CSS。但是,我不知道如何做到这一点。
如果换行到下一行,它们应该像有序列表一样在文本下继续。
更新我试过
OL {
counter-reset: numeric
}
OL LI OL LI OL {
counter-reset: latin
}
LI {
display: block
}
LI:before {
content: counters(numeric, ".") " ";
counter-increment: numeric
}
OL LI OL LI OL LI:before {
content: "(" counter(latin, lower-latin) ") ";
counter-increment: latin
}
和 HTML,例如:
xxx
<ol>
<li>one
<ol>
<li>onedotone</li>
<li>onedottwo
<ol>
<li>A</li>
</ol>
</li>
</ol>
<li>two</li>
</ol>
产生这个
xxx 1 个 1.1 单调 1.2 onedottwo (一)一个 2 二
不幸的是,我的要求与原始问题中的完全一致。所以我的 CSS 在这些方面失败了。
- 在 1 和 2 之后需要有句号,但在 1.1 和 1.2 之后不需要
- 1 和 1.1 不应该缩进,它们的文本需要对齐到同一个地方。所以 onedotone 这个词需要正好在 one 这个词的下方。此外,数字和文本之间的间距必须大于一个空格。
- (a) 需要与单词 onedottwo 对齐,并且在 (a) 和 A 之间需要有比一个空格更大的间隙。
padding-left
不是答案,因为它无助于排列数字后的文字,你得到
1 个 1.1 单调
代替
1. 一 1.1 单调
这超出了我的 CSS 能力。除非有人有专业知识为我指明正确的方向,否则我担心我将不得不重新使用桌子。