counter()
=========

La fonction CSS **`counter()`** renvoie une chaîne de caractères qui représente la valeur courante du compteur nommé (dont le nom est passé en argument). Elle est généralement utilisée pour construire un pseudo-élément mais elle peut tout à fait être utilisée à n'importe quel endroit où une valeur `<string>` est attendue.


```css
/\* Usage simple \*/
counter(nomcompteur);

/\* Modifier le type d'affichage du compteur \*/
counter(nomcompteur, upper-roman)
```


Un compteur CSS n'a aucun effet visible en lui-même. C'est la fonction `counter()` (ainsi que `counters()`) qui permet d'utiliser la chaîne de caractère ou l'image résultante.

**Note :** La fonction `counter()` peut être utilisée avec n'importe quelle propriété CSS mais la prise en charge des propriétés autres que `content` reste expérimentale et la prise en charge du paramètre « type ou unité » est hétérogène.

Veillez à consulter le tableau de compatibilité des navigateurs avant d'utiliser ces fonctionnalités en production.

Syntaxe
-------

### Valeurs

`<custom-ident>`

Un nom identifiant le compteur (sensible à la casse). C'est le même nom qui pourra être utilisé avec `counter-reset` et `counter-increment`. Le nom ne peut pas commencer avec deux tirets et ne peut pas être l'un des mots-clés `none`, `unset`, `initial` ou `inherit`.

`<counter-style>`

Un nom de style de compteur ou une fonction `symbols()`. Le nom d'un style de compteur peut indiquer un compteur alphabétique, numérique, symbolique ou encore utilisant un système de numération asiatique ou éthiopien ou un autre style de compteur prédéfini. Si cette valeur n'est pas fournie, le style par défaut est décimal.

`none`

Représente la chaîne de caractère vide.

### Syntaxe formelle
```

<counter()> =   
  counter( <counter-name> , <counter-style>? )    
  
<counter-style> =   
  <counter-style-name>  |  
  <symbols()>             
  
<symbols()> =   
  symbols( <symbols-type>? [ <string> | <image> ]+ )    
  
<symbols-type> =   
  cyclic      |  
  numeric     |  
  alphabetic  |  
  symbolic    |  
  fixed         
  
<image> =   
  <url>       |  
  <gradient>    
  
<url> =   
  <url()>  |  
  <src()>    
  
<url()> =   
  url( <string> <url-modifier>\* )  |  
  <url-token>                        
  
<src()> =   
  src( <string> <url-modifier>\* )    
  
```

Exemples
--------

### Comparaison entre compteur par défaut et chiffres romains majuscules

#### HTML


```html
<ol>
  <li></li>
  <li></li>
  <li></li>
</ol>
```


#### CSS


```css
ol {
  counter-reset: listCounter;
}
li {
  counter-increment: listCounter;
}
li::after {
  content: "[" counter(listCounter) "] == [" counter(listCounter, upper-roman)
    "]";
}
```


#### Résultat

### Comparaison entre compteur décimal avec zéro et compteur alphabétique minuscule

#### HTML


```html
<ol>
  <li></li>
  <li></li>
  <li></li>
</ol>
```


#### CSS


```css
ol {
  counter-reset: count;
}

li {
  counter-increment: count;
}

li::after {
  content: "[" counter(count, decimal-leading-zero) "] == [" counter(
      count,
      lower-alpha
    )
    "]";
}
```


#### Résultat

Spécifications
--------------

| Specification |
| --- |
| CSS Lists and Counters Module Level 3 # counter-functions |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* Utiliser les compteurs CSS
* `counter-reset`
* `counter-increment`
* `@counter-style`
* La fonction CSS `counters()`