Состояние CSS counters
БазовыйЭкспертный
Базовый уровень
Reset state
Создаёт counter через `counter-reset` с заданным начальным значением.
Increment state
Изменяет существующее значение через `counter-increment`.
Explicit set
Присваивает существующему counter точное значение через `counter-set`.
Operation defaults
Применяет разные default integers для reset, increment и set.
Current value
Получает innermost value через `counter()`.
Nested values
Получает последовательность nested values через `counters()`.
Implicit `list-item`
Использует implicit counter, связанный с list items.
Продвинутый уровень
Multiple names
Обрабатывает несколько counter names в одном property value.
Duplicate reset
Для повторяющегося имени в `counter-reset` применяет последнее значение.
Duplicate increment
Последовательно суммирует повторяющиеся increments одного имени.
Duplicate set
Для повторяющегося имени в `counter-set` сохраняет последнее присваивание.
Implicit instantiation
Создаёт отсутствующий counter при increment, set или чтении.
Counter scope
Определяет descendants и following siblings, входящие в scope counter.
Self-nesting
Создаёт вложенный counter того же имени внутри inherited counter.
Innermost state
Выбирает последний counter данного имени как innermost.
Nested separator
Соединяет nested representations separator из `counters()`.
Reversed state
Создаёт reversed counter с явным или вычисляемым initial value.
`list-item` increment
Применяет автоматический increment и его explicit override.
Host-list integration
Согласует implicit state с host-language `start`, `value` и `reversed` semantics.
Экспертный уровень
Inheritance sources
Собирает counter set из parent или preceding sibling по нормативным правилам.
Tree-order values
Получает inherited values от preceding element в tree order.
Sibling obscuring
Заменяет earlier sibling counter новым counter того же имени в соответствующем scope.
Operation order
Применяет inheritance → reset → increment → set → use.
Style-containment boundary
Локализует изменения counter state внутри style-contained subtree.
Box-generation boundary
Не изменяет counter state на element или pseudo-element, который не генерирует box.