HTML 中使用奇数编号的有序列表
Ordered list in HTML that is numbered using odd numbers
在 HTML 中使用 <ol type="1">
,我可以获得一个如下所示的有序列表:
- 我喜欢奶酪
- 饼干很好吃
- 奶油不错
...
我如何使用 <ol>
来获得一个只有奇数编号的有序列表,就像这样?
1.I喜欢奶酪
3.Food很好
5.I向星星许愿...
我不认为这可以用普通的有序列表来实现,因为 the only attributes available seem to be the following(甚至包括 HTML5):
- type(表示编号类型)
- start(表示起始值)
- reversed(表示列表是否倒序)
但可以使用 CSS 计数器来实现,如下面的代码片段所示。 CSS 计数器不是新事物 has very good browser support。
用计数器实现这个非常简单,只需要以下步骤:
- 在父级使用
counter-reset
属性 创建(重置)计数器。 counter-reset
属性 一般以计数器的名称和起始值作为参数。在这里,我使用 -1 作为起始值,因为在每个 li
处增量应为 2,并且起始值需要为 1(因此 -1+2 = 1)。
- 每次遇到
li
时,计数器的值增加 2。这使得计数器只有奇数值。同样,counter-increment
属性 通常也有 2 个参数 - 一个是计数器名称,另一个是它应该递增的值。
- 使用
:before
伪元素和 content
属性. 在列表项之前显示计数器的值
ol {
counter-reset: odd-numbers -1;
list-style-type: none;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
另一个不设置 -1 作为起始值的选项是使用 li:first-child
选择器并将计数器仅增加 1(默认值,因此不需要在 counter-increment
中指定).对于 li
的其余部分,我们可以将其递增 2。
ol {
counter-reset: odd-numbers;
list-style-type: none;
}
li:first-child {
counter-increment: odd-numbers;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
一个解决方案是使用此 css 规则,它隐藏偶数元素。
li:nth-child(2n) {
visibility: hidden;
position: absolute;
}
然后,偶数规则之间有空格li
:
<ol>
<li>1</li>
<li></li>
<li>3</li>
<li></li>
...
</ol>
在 HTML 中使用 <ol type="1">
,我可以获得一个如下所示的有序列表:
- 我喜欢奶酪
- 饼干很好吃
- 奶油不错 ...
我如何使用 <ol>
来获得一个只有奇数编号的有序列表,就像这样?
1.I喜欢奶酪
3.Food很好
5.I向星星许愿...
我不认为这可以用普通的有序列表来实现,因为 the only attributes available seem to be the following(甚至包括 HTML5):
- type(表示编号类型)
- start(表示起始值)
- reversed(表示列表是否倒序)
但可以使用 CSS 计数器来实现,如下面的代码片段所示。 CSS 计数器不是新事物 has very good browser support。
用计数器实现这个非常简单,只需要以下步骤:
- 在父级使用
counter-reset
属性 创建(重置)计数器。counter-reset
属性 一般以计数器的名称和起始值作为参数。在这里,我使用 -1 作为起始值,因为在每个li
处增量应为 2,并且起始值需要为 1(因此 -1+2 = 1)。 - 每次遇到
li
时,计数器的值增加 2。这使得计数器只有奇数值。同样,counter-increment
属性 通常也有 2 个参数 - 一个是计数器名称,另一个是它应该递增的值。 - 使用
:before
伪元素和content
属性. 在列表项之前显示计数器的值
ol {
counter-reset: odd-numbers -1;
list-style-type: none;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
另一个不设置 -1 作为起始值的选项是使用 li:first-child
选择器并将计数器仅增加 1(默认值,因此不需要在 counter-increment
中指定).对于 li
的其余部分,我们可以将其递增 2。
ol {
counter-reset: odd-numbers;
list-style-type: none;
}
li:first-child {
counter-increment: odd-numbers;
}
li {
counter-increment: odd-numbers 2;
}
li:before {
content: counter(odd-numbers) ". ";
}
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>
一个解决方案是使用此 css 规则,它隐藏偶数元素。
li:nth-child(2n) {
visibility: hidden;
position: absolute;
}
然后,偶数规则之间有空格li
:
<ol>
<li>1</li>
<li></li>
<li>3</li>
<li></li>
...
</ol>