counter-increment CSS 属性可用于按指定值增加或减少命名的 CSS 计数器的数值,或用于阻止所有计数器或某个特定计数器的值发生变化。
如果在由空格分隔的计数器和值列表中某个命名计数器不存在,则会创建该计数器。如果列表中的某个计数器未提供数值,则其值会增加 1。
计数器的值可以通过 {{cssxref("counter-reset")}} CSS 属性重置为任意整数。
{{InteractiveExample("CSS 演示:counter-increment")}}
```css interactive-example-choice counter-increment: example-counter;
```css interactive-example-choice
counter-increment: example-counter 0;
```css interactive-example-choice counter-increment: example-counter 5;
```css interactive-example-choice
counter-increment: example-counter -5;
```html interactive-example
```css interactive-example
#default-example {
text-align: left;
counter-reset: example-counter;
}
#example-element::after {
content: counter(example-counter);
}
语法
/* 将 "my-counter" 增加 1 */
counter-increment: my-counter;
/* 将 "my-counter" 减少 1 */
counter-increment: my-counter -1;
/* 将 "counter1" 增加 1,将 "counter2" 减少 4 */
counter-increment: counter1 counter2 -4;
/* 将 "page" 增加 1,将 "section" 增加 2,而 "chapter" 不变 */
counter-increment: chapter 0 section 2 page;
/* 不进行任何增减:用于覆盖优先级较低的规则 */
counter-increment: none;
/* 全局值 */
counter-increment: inherit;
counter-increment: initial;
counter-increment: revert;
counter-increment: revert-layer;
counter-increment: unset;
值
counter-increment 属性的取值可以是由空格分隔的计数器名称列表(使用 <custom-ident> 指定),每个名称后可以跟一个可选的 <integer> 值;也可以使用关键字 none。你可以按需指定任意数量的计数器,每个名称或名称与数字的组合之间以空格分隔。
- {{cssxref("<custom-ident>")}}
- : 指定要增加或减少的计数器名称。
- {{cssxref("<integer>")}}
- : 指定要添加到计数器的数值。如果该整数前带有
-符号,则会从计数器中减去该值。如果未指定,默认值为1。
- : 指定要添加到计数器的数值。如果该整数前带有
none- : 表示不应增加或减少任何计数器。该值也可用于在更具体的规则中取消所有计数器的增加或减少。这是该属性的默认值。
[!NOTE] 使用
none值会阻止在此规则适用的选定元素上对所有计数器进行增加或减少。若只想阻止特定计数器的增减,请将相关计数器的integer值设为0。
形式定义
{{cssinfo}}
形式语法
{{csssyntax}}
示例
减少计数器的值
在这个示例中,我们展示一个倒序的数字序列。为此,我们使用计数器从 100 开始显示数字,并每次递减 7。
HTML
<div>
<i></i><i></i><i></i><i></i><i></i><i></i><i></i> <i></i><i></i><i></i><i></i
><i></i><i></i><i></i> <i></i><i></i><i></i><i></i><i></i><i></i><i></i>
<i></i><i></i><i></i><i></i><i></i><i></i><i></i>
</div>
CSS
我们通过 {{cssxref("counter-reset")}} 将名为 sevens 的计数器初始值设置为 100。然后,对每个 {{HTMLElement("i")}} 元素,将计数器减少 7。
为了让第一次计数显示为 100,我们使用 {{cssxref(":first-of-type")}} 伪类选中第一个 <i> 元素,并设置 counter-increment: none;。此外,在 {{cssxref("::before")}} 伪元素中使用 {{cssxref("content")}} 属性,通过 counter() 函数来展示计数器的值。
div {
counter-reset: sevens 100;
}
i {
counter-increment: sevens -7;
}
i:first-of-type {
counter-increment: none;
}
i::before {
content: counter(sevens);
}
css hidden
div {
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 300px;
width: 200px;
}
i {
flex: 0 0 2em;
}
结果
{{EmbedLiveSample("减少计数器的值", 140, 300)}}
如果我们没有使用 counter-reset(或 {{cssxref("counter-set")}})来创建计数器并将其值设置为 100,sevens 计数器仍然会被创建,但其初始值将为 0。