Since December 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
The counter-set CSS property sets CSS counters on the element to the given values.
If the counters don't exist the counter-set property creates a new counter for each named counter in the list of space-separated counter and value pairs. However, to create a new counter it is recommended to use the counter-reset CSS property.
If a named counter in the list is missing a value, the value of the counter will be set to 0.
counter-set: none;
counter-set: chapter-count 0;
counter-set: chapter-count;
counter-set: chapter-count 5;
counter-set: chapter-count -5;
<section class="default-example" id="default-example">
<div class="transition-all" id="chapters">
<h1>Alice's Adventures in Wonderland</h1>
<h2>Down the Rabbit-Hole</h2>
<h2 id="example-element">The Pool of Tears</h2>
<h2>A Caucus-Race and a Long Tale</h2>
<h2>The Rabbit Sends in a Little Bill</h2>
</div>
</section>
#default-example {
text-align: left;
counter-set: chapter-count;
}
#example-element {
background-color: #37077c;
color: white;
}
h2 {
counter-increment: chapter-count;
font-size: 1em;
}
h2::before {
content: "Chapter " counter(chapter-count) ": ";
}
Note: The counter's value can be incremented or decremented using the counter-increment CSS property.
/* Set "my-counter" to 0 */ counter-set: my-counter; /* Set "my-counter" to -1 */ counter-set: my-counter -1; /* Set "counter1" to 1, and "counter2" to 4 */ counter-set: counter1 1 counter2 4; /* Cancel any counter that could have been set in less specific rules */ counter-set: none; /* Global values */ counter-set: inherit; counter-set: initial; counter-set: revert; counter-set: revert-layer; counter-set: unset;
The counter-set property is specified as either one of the following:
<custom-ident> naming the counter, followed optionally by an <integer>. You may specify as many counters to reset as you want, with each name or name-number pair separated by a space.none.<custom-ident>The name of the counter to set.
<integer>The value to set the counter to on each occurrence of the element. Defaults to 0 if not specified. If there isn't currently a counter of the given name on the element, the element will create a new counter of the given name with a starting value of 0 (though it may then immediately set or increment that value to something different).
noneNo counter set is to be performed. This can be used to override a counter-set defined in a less specific rule.
| Initial value | none |
|---|---|
| Applies to | all elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | by computed value type |
counter-set =
[ <counter-name> <integer>? ]+ |
none
h1 {
counter-set: chapter section 1 page;
/* Sets the chapter and page counters to 0,
and the section counter to 1 */
}
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
counter-set |
85 | 85 | 68 | 71 | 17.2 | 85 | 68 | 60 | 17.2 | 14.0 | 85 | 17.2 |
list-item |
85 | 85 | 68 | 71 | 17.2 | 85 | 68 | 60 | 17.2 | 14.0 | 85 | 17.2 |
none |
85 | 85 | 68 | 71 | 17.2 | 85 | 68 | 60 | 17.2 | 14.0 | 85 | 17.2 |
counter-incrementcounter-reset@counter-stylecounter() and counters() functionscontent property
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/counter-set