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.
É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.
É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ó).