counter-increment

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

counter-increment CSS 屬性可用於按指定值增加或減少命名CSS 計數器的值,或阻止所有計數器或單個計數器的值被更改。

如果空格分隔的計數器和值列表中命名的計數器不存在,則會建立它。如果列表中計數器沒有提供值,則計數器將增加 1

計數器的值可以使用 counter-reset CSS 屬性重置為任何整數值。

試一試

counter-increment: example-counter;
counter-increment: example-counter 0;
counter-increment: example-counter 5;
counter-increment: example-counter -5;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">Counter value:</div>
</section>
#default-example {
  text-align: left;
  counter-reset: example-counter;
}

#example-element::after {
  content: counter(example-counter);
}

語法

css
/* Increases "my-counter" by 1 */
counter-increment: my-counter;

/* Decreases "my-counter" by 1 */
counter-increment: my-counter -1;

/* Increases "counter1" by 1 and decreases "counter2" by 4 */
counter-increment: counter1 counter2 -4;

/* Increases "page" by 1, "section" by 2, while "chapter" doesn't change */
counter-increment: chapter 0 section 2 page;

/* Do not increment/decrement anything: used to override less specific rules */
counter-increment: none;

/* Global values */
counter-increment: inherit;
counter-increment: initial;
counter-increment: revert;
counter-increment: revert-layer;
counter-increment: unset;

counter-increment 屬性的值可以是作為 <custom-ident> 指定的空格分隔的計數器名稱列表,帶有可選的 <integer> 值,或關鍵字 none。你可以指定任意數量的計數器來遞增,每個名稱或名稱-數字對用空格分隔。

<custom-ident>

指定要增加或減少的計數器名稱。

<integer>

指定要新增到計數器的值。如果整數前面有 - 符號,則該值將從計數器中減去。如果未指定值,則預設為 1

none

指示不應增加或減少任何計數器。此值還可用於在更具體的規則中取消所有計數器的增加或減少。這是屬性的預設值。

注意:使用 none 值會阻止所選元素(應用此規則)的所有計數器增加或減少。要僅阻止特定計數器增加或減少,請將相關計數器的 integer 值設定為 0

正式定義

初始值none
應用於所有元素
繼承性
計算值同指定值
動畫型別按計算值型別

正式語法

counter-increment = 
[ <counter-name> <integer>? ]+ |
none

示例

減少計數器值

在此示例中,我們顯示一個倒數序列。為此,我們使用一個計數器來顯示從 100 開始的數字,每次遞減 7。

HTML

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

我們使用 counter-reset 將名為 sevens 的計數器的初始值設定為 100。然後,對於每個 <i>,我們將計數器減去 7

要將第一個計數設定為 100,我們使用 :first-of-type 偽類並設定 counter-increment: none; 來定位第一個 <i> 元素。此外,content 屬性在 ::before 偽元素中使用,以使用 counter() 函式顯示計數器的值。

css
div {
  counter-reset: sevens 100;
}
i {
  counter-increment: sevens -7;
}
i:first-of-type {
  counter-increment: none;
}
i::before {
  content: counter(sevens);
}

結果

如果我們沒有使用 counter-reset(或 counter-set)來建立計數器並將值設定為 100,則 sevens 計數器仍然會被建立,但初始值為 0

規範

規範
CSS 列表與計數器模組第 3 級
# 遞增-設定

瀏覽器相容性

另見