bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths

Loading lesson path

Learn/CSS/CSS Foundations Practice
CSS•CSS Foundations Practice

CSS Nested Counters

CSS Using Two Counters

You can create multiple counters for different levels of numbering. The following example creates one counter for the page (named "section") and one counter for each <h1> element (named "subsection"):

Example

Formatted code
body {
  counter-reset: section;
}
h1 {
  counter-reset: subsection;
}
h1::before {
  counter-increment: section;
  content: "Section " counter(section) ". ";
}
h2::before {
  counter-increment: subsection;
  content: counter(section) "." counter(subsection) " ";
}

Live preview

The CSS counters() Function

The counters() function returns the current values of the named and nested counters, as a string.

Here we use the counters() function to insert a string between different levels of nested counters:

Example

Formatted code
ol {
  counter-reset: section;
  list-style-type: none;
}
li::before {
  counter-increment: section;
  content: counters(section,".") " ";
}

Live preview

CSS Counter Properties

PropertyDescription
contentUsed with the ::before and ::after pseudo-elements, to insert generated content
counter-incrementIncrements one or more counter values
counter-resetCreates or resets one or more counters
counter()Returns the current value of the named counter
counters()Returns the current values of the named and nested counters

Previous

CSS Fonts

Next

CSS Performance Optimization