counter-reset
试一试
语法
/* Create a counter with initial default value 0 */
counter-reset: my-counter;
/* Create a counter and initialize as "-3" */
counter-reset: my-counter -3;
/* Create a reversed counter with initial default value */
counter-reset: reversed(my-counter);
/* Create a reversed counter and initialize as "-1" */
counter-reset: reversed(my-counter) -1;
/* Create reversed and regular counters at the same time */
counter-reset: reversed(pages) 10 items 1 reversed(sections) 4;
/* Remove all counter-reset declarations in less specific rules */
counter-reset: none;
/* Global values */
counter-reset: inherit;
counter-reset: initial;
counter-reset: revert;
counter-reset: revert-layer;
counter-reset: unset;
值
counter-reset
属性接受一个或多个以空格分隔的计数器名称或关键字 none
的列表。对于计数器名称,常规计数器使用格式 <counter-name>
,反向计数器使用 reversed(<counter-name>)
,其中 <counter-name>
是一个 <custom-ident>
或 list-item
,用于内置的 <ol>
计数器。可选地,每个计数器名称后面可以跟着一个 <integer>
来设置其初始值。
<custom-ident>
-
指定要使用
<custom-ident>
格式创建和初始化的计数器名称。reversed()
函数表示法可用于标记反向计数器。 <integer>
-
新创建的计数器要设置的初始值。如果未指定,则默认为
0
。 none
-
指定不应发生任何计数器初始化。此值可用于覆盖不太具体的规则中的
counter-reset
值。
描述
counter-reset
属性可以创建常规计数器和(在支持它的浏览器中)反向计数器。您可以创建多个常规和反向计数器,每个计数器之间用空格分隔。计数器可以是独立的名称或一个用空格分隔的名称-值对。
**警告:**counter-reset
和 counter-set
属性之间存在差异。使用 counter-reset
创建计数器后,可以使用 counter-set
属性调整其值。这与直觉相反,因为尽管名称如此,counter-reset
属性用于创建和初始化计数器,而 counter-set
属性用于重置现有计数器的值。
在具有更高特异性的选择器上设置 counter-increment: none
会覆盖在具有较低特异性的选择器上设置的命名计数器集的创建。
默认初始值
常规和反向计数器的默认初始值使得实现两种最常见的编号模式变得很容易:分别从一开始就计数到元素数量,以及从元素数量倒数到一。通过为命名计数器包含一个计数器值,您的计数器可以向上或向下计数,从一个整数值开始。
常规计数器如果未提供重置值,则默认为 0
。默认情况下,常规计数器每次递增 1,这可以通过 counter-increment
属性进行调整。
h1 {
/* Create the counters "chapter" and "page" and set to initial default value.
Create the counter "section" and set to "4". */
counter-reset: chapter section 4 page;
}
反向计数器
在创建没有值的反向计数器时,计数器将以等于集合中元素数量的值开始,向下计数,以便集合中的最后一个元素为 1
。默认情况下,反向计数器每次递减 1;这也可以通过 counter-increment
属性更改。
h1 {
/* Create reversed counters "chapter" and "section".
Set "chapter" as the number of elements and "section" as "10".
Create the counter "pages" with the initial default value. */
counter-reset: reversed(chapter) reversed(section) 10 pages;
}
内置 list-item
计数器
有序列表 (<ol>
) 带有控制其编号的内置 list-item
计数器。这些计数器会随着每个列表项自动增加或减少 1。counter-reset
属性可用于重置 list-item
计数器。与其他计数器一样,您可以使用 counter-increment
属性覆盖 list-item
计数器的默认增量值。
正式定义
正式语法
示例
覆盖list-item
计数器
在本例中,counter-reset
属性用于为隐式list-item
计数器设置起始值。
HTML
<ol>
<li>First</li>
<li>Second</li>
<li>Third</li>
<li>Fourth</li>
<li>Fifth</li>
</ol>
CSS
使用counter-reset
,我们将隐式list-item
计数器设置为从除默认值1
之外的值开始。
ol {
counter-reset: list-item 3;
}
结果
使用counter-reset
,我们将隐式list-item
计数器设置为从3
开始为每个ol
计数。然后,第一个项目将编号为4,第二个项目将编号为5,依此类推,类似于在HTML中编写<ol start="4">
的效果。
使用反向计数器
在以下示例中,我们声明了一个名为“priority”的反向计数器。该计数器用于对五个任务进行编号。
<ul class="stack">
<li>Task A</li>
<li>Task B</li>
<li>Task C</li>
<li>Task D</li>
<li>Task E</li>
</ul>
li::before {
content: counter(priority) ". ";
counter-increment: priority -1;
}
.stack {
counter-reset: reversed(priority);
list-style: none;
}
在输出中,项目从5到1按反序编号。请注意,在代码中我们没有指定计数器的初始值。浏览器会在布局时使用计数器增量值自动计算初始值。
规范
规范 |
---|
CSS 列表和计数器模块级别 3 # counter-reset |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- 使用 CSS 计数器指南
counter-increment
属性counter-set
属性@counter-style
at-规则counter()
和counters()
函数content
属性::marker
伪类- CSS 列表和计数器模块
- CSS 计数器样式模块