counter-set
        
        
          
                Baseline
                
                  2023
                
                
              
        
        Newly available
        
          
                
              
                
              
                
              
        
        
      
      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.
Try it
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.
Syntax
/* 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:
- A <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.
- The keyword value none.
Values
- <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 0if 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 of0(though it may then immediately set or increment that value to something different).
- none
- 
No counter set is to be performed. This can be used to override a counter-setdefined in a less specific rule.
Formal definition
| Initial value | none | 
|---|---|
| Applies to | all elements | 
| Inherited | no | 
| Computed value | as specified | 
| Animation type | by computed value type | 
Formal syntax
counter-set =
[ <counter-name> <integer>? ]+ |
none
Examples
>Setting named counters
h1 {
  counter-set: chapter section 1 page;
  /* Sets the chapter and page counters to 0,
     and the section counter to 1 */
}
Specifications
| Specification | 
|---|
| CSS Lists and Counters Module Level 3> # propdef-counter-set> | 
Browser compatibility
Loading…
See also
- Using CSS Counters
- counter-increment
- counter-reset
- @counter-style
- counter()and- counters()functions
- contentproperty
- CSS lists and counters module
- CSS counter styles module