The counter()
CSS function returns a string representing the current value of the named counter, if there is one.
It is generally used in the content()
property of pseudo-elements, but can theoretically be used anywhere a <string>
value is supported.
Syntax
/* Simple usage */ counter(countername); /* changing the counter display */ counter(countername, upper-roman)
A counter has no visible effect by itself.
The counter()
function (and counters()
function) is what makes it useful by returning developer defined strings (or images).
Values
<custom-ident>()
-
A name identifying the counter, which is the same case-sensitive name used for the
counter-reset()
andcounter-increment()
. The name cannot start with two dashes and can't benone
,unset
,initial
, orinherit
. <counter-style>
-
A
<list-style-type>()
name,<@counter-style>()
name orsymbols()
function, where a counter style name is anumeric
,alphabetic
, orsymbolic
simple predefined counter style, a complex longhand east Asian or Ethiopic predefined counter style, or other predefined counter style. If omitted, the counter-style defaults todecimal
.
Examples
default value compared to upper Roman
HTML
<ol> <li></li> <li></li> <li></li> </ol>
CSS
ol { counter-reset: listCounter; } li { counter-increment: listCounter; } li::after { content: "[" counter(listCounter) "] == [" counter(listCounter, upper-roman) "]"; }
decimal-leading-zero compared to lower-alpha
HTML
<ol> <li></li> <li></li> <li></li> </ol>
CSS
ol { counter-reset: count; } li { counter-increment: count; } li::after { content: "[" counter(count, decimal-leading-zero) "] == [" counter( count, lower-alpha ) "]"; }