Skip to main content

Featured to Learn

CSS counter-reset Property

Example

Create a counter ("my-sec-counter") and increase it by one for each occurrence of the <h2> selector:

body {
  /* Set "my-sec-counter" to 0 */
  counter-reset: my-sec-counter;
}

h2::before {
  /* Increment "my-sec-counter" by 1 */
  counter-increment: my-sec-counter;
  content: "Section " counter(my-sec-counter) ". ";
}

Definition and Usage

The counter-reset property creates or resets one or more CSS counters.

The counter-reset property is usually used together with the counter-increment property and the content property.

Default value: none
Inherited: no
Animatable: no.
Version: CSS2
JavaScript syntax: object.style.counterReset="section"

  • Inherited : "Inherited = no" means that it cannot takes (inherit) it's value from it's parent element.
  • object - object in javascript means the element on which counter-reset is applied.
  • Animatable - "Animatable = no" means that it cannot be animated with CSS @keyframes.

Browser Support

The numbers in the table specify the first browser version that fully supports the property.

Property          
counter-reset 4.0 8.0 2.0 3.1 9.6

CSS Syntax

counter-reset: none|name number|initial|inherit;

Property Values

Value Description
none Default value. No counters will be reset
id number The id defines which counter to reset. The number sets the value the counter is reset to on each occurrence of the selector. The default number value is 0
initial Sets this property to its default value.
inherit Inherits this property from its parent element.

More Examples

Example

Create a counter ("my-sec-counter") and decrease it by one for each occurrence of the <h2> selector:

body {
  /* Set "my-sec-counter" to 0 */
  counter-reset: my-sec-counter;
}

h2::before {
  /* Decrement "my-sec-counter" by 1 */
  counter-increment: my-sec-counter -1;
  content: "Section " counter(my-sec-counter) ". ";

Example

Numbering sections and sub-sections with "Section 1:", "1.1", "1.2", etc.:

body {
   /* Set "section" to 0 */
  counter-reset: section;
}

h1 {
   /* Set "subsection" to 0 */
  counter-reset: subsection;
}

h1::before {
  /* Increment "section" by 1 */
  counter-increment: section;
  content: "Section " counter(section) ": ";
}

h2::before {
  /* Increment "subsection" by 1 */
  counter-increment: subsection;
  content: counter(section) "." counter(subsection) " ";

Example

Create a counter and increase it by one (using Roman numerals) for each occurrence of the <h2> selector:

body {
  /* Set "my-sec-counter" to 0 */
  counter-reset: my-sec-counter;
}

h2::before {
  /* Increment "my-sec-counter" by 1 */
  counter-increment: my-sec-counter;
  content: counter(my-sec-counter, upper-roman) ". ";
}

Comments

Most Reads