A counter-reset és counter-increment tulajdonságok

A CSS2 nyelvben az automatikus számozásokat két tulajdonsággal lehet befolyásolni. Az ezekkel definiált számlálók azután a content tulajdonságban felhasználhatók a counter() és a counters() függvényekkel.

counter-reset

Értékei lehetnek azonosítóból és értékből álló párok sorozata, a none vagy az inherit érték. Ez utóbbi a szokásos jelentéssel bír: a tulajdonság az értékét az elem ősétől örökli.

counter-increment

Értékei ugyanazok lehetnek, mint a másik tulajdonságnak.

A counter-increment tulajdonság egy vagy több számláló növelésére alkalmas. Azokat a számlálókat növeli, amelyeknek az azonosítója fel van sorolva. Az utána álló (opcionális) érték megadja, hogy mennyivel kell növelni a számláló értékét. Amennyiben az érték nincs megadva, akkor a növelés egyel történik. Megadható nulla vagy negatív szám is.

A counter-reset tulajdonság szintén egy vagy több számláló azonosítójának listáját tartalmazza, mindegyik után (opcionálisan) egy egész számmal. Az egész szám lesz a számláló értéke minden esetben, amikor az elem, amelynél a tulajdonság szerepel, a dokumentumban előfordul. Ha nincs megadva érték, akkor 0 lesz.

Ha a counter-increment olyan számlálóra mutat, amelyhez az adott láthatósági tartományban nem szerepel egyetlen counter-reset sem, akkor úgy tekintendő, mintha a dokumentum kezdő eleme nullára állította volna.

Ha egy elem beállít egy számlálót és egyben a content tulajdonság a számláló értékét használja is, akkor előbb történik meg a számláló beállítása, és csak utána a felhasználása. Ha egy elem egyszerre ad értéket egy számlálónak és növeli is, akkor a növelés kerül később végrehajtásra.

A számlálók automatikusan beágyazódnak, azaz ha egy elem, amely tartalmaz egy számláló beállítást, önmagán belül megismétlődik, akkor az elem belső előfordulásához egy új számlálópéldány jön létre, amely addig létezik, amíg a belső előfordulását definiáló elem véget nem ér. Ennek köszönhető, hogy a többszintű listák minden szintjén a számozás elölről tud kezdődni, és a külső szint pedig gond nélkül tud tovább folytatódni.

Tehát ha a counter-reset egy elemnél létrehoz egy X számlálót, akkor az a számláló láthatósági tartományát is meghatározza, ez áll az elemből, annak leszármazottaiból. Ha ebben a láthatósági tartományban szerepel egy elem, amelyben ismét van egy counter-reset erre az X-re, akkor az egy teljesen új X számlálót fog létrehozni, amelynek láthatósági tartományában az eddigi X számláló nem látszik (eltakarja az új számláló).