使用HTML中的<ol type="1">
,我可以得到一个有序列表的显示效果如下:
- 我喜欢奶酪
- 曲奇饼干很不错
- 奶油很好吃...
如果想要使用<ol>
标签只显示奇数编号的有序列表,该怎么做呢?
1.我喜欢奶酪
3.食物不错
5.我许愿在星星上...
使用HTML中的<ol type="1">
,我可以得到一个有序列表的显示效果如下:
如果想要使用<ol>
标签只显示奇数编号的有序列表,该怎么做呢?
1.我喜欢奶酪
3.食物不错
5.我许愿在星星上...
我认为使用普通的有序列表无法实现这一点,因为即使包括HTML5,唯一可用的属性似乎只有以下几个:
但是可以使用CSS计数器来实现,就像下面的代码片段一样。 CSS计数器不是什么新鲜事物,具有非常好的浏览器支持。
使用计数器实现这个功能非常简单,只需要执行以下步骤:
counter-reset
属性创建(重置)计数器。 counter-reset
属性通常以计数器名称和起始值作为参数。 在这里,我将-1用作起始值,因为每次遇到li
时增量应为2,并且起始值必须为1(因此-1 + 2 = 1)。li
时将计数器的值增加2。 这使计数器仅具有奇数值。 再次,counter-increment
属性通常也需要两个参数-一个是计数器名称,另一个是应增加的值。: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>
li:nth-child(2n) {
visibility: hidden;
position: absolute;
}
li
:<ol>
<li>1</li>
<li></li>
<li>3</li>
<li></li>
...
</ol>