counter-reset
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство counter-reset CSS создает именованные счетчики CSS и инициализирует их определенным значением. Оно поддерживает создание счетчиков, которые увеличиваются от одного до числа элементов, а также счетчиков, которые уменьшаются от числа элементов до одного.
Попробуйте
Синтаксис
/* Create a counter with initial default value 0 */ counter-reset: my-counter; /* Create a counter and initialize as "-3" */ counter-reset: my-counter -3; /* Create a reversed counter with initial default value */ counter-reset: reversed(my-counter); /* Create a reversed counter and initialize as "-1" */ counter-reset: reversed(my-counter) -1; /* Create reversed and regular counters at the same time */ counter-reset: reversed(pages) 10 items 1 reversed(sections) 4; /* Remove all counter-reset declarations in less specific rules */ counter-reset: none; /* Global values */ counter-reset: inherit; counter-reset: initial; counter-reset: revert; counter-reset: revert-layer; counter-reset: unset;
Значения
Свойство counter-reset принимает список из одного или нескольких разделенных пробелами имен счетчиков или ключевое слово none. Для имен счетчиков обычные счетчики используют формат <counter-name>, а обратные счетчики — reversed(<counter-name>), где <counter-name> — <custom-ident> или list-item для встроенного <ol> счетчика. Дополнительно, каждое имя счетчика может быть дополнено <integer>, чтобы установить его начальное значение.
<custom-ident>-
Указывает имя счетчика для создания и инициализации с помощью формата
<custom-ident>. Функциональная нотацияreversed()может использоваться для обозначения обратного счетчика. <integer>-
Начальное значение для установки нового счетчика. По умолчанию равно
0, если не указано иное. none-
Указывает, что никакой инициализации счетчика не должно происходить. Это значение полезно для переопределения
counter-resetзначений в менее специфичных правилах.
Описание
Свойство counter-reset может создавать как обычные, так и, в браузерах, которые это поддерживают, обратные счетчики. Вы можете создать несколько обычных и обратных счетчиков, разделенных пробелами. Счетчики могут быть самостоятельными именами или разделенными пробелами парами имя-значение.
Предупреждение: Существует различие между counter-reset и counter-set свойствами. После создания счетчика с помощью counter-reset, его значение можно изменить, используя свойство counter-set. Это может показаться нелогичным, так как, несмотря на название, свойство counter-reset используется для создания и инициализации счетчиков, а свойство counter-set используется для сброса значения существующего счетчика.
Установка counter-increment: none на селектор с большей специфичностью переопределяет создание именованного счетчика, установленного на селекторах с меньшей специфичностью.
Значения по умолчанию
Значения по умолчанию для обычных и обратных счетчиков упрощают реализацию двух наиболее распространенных схем нумерации: последовательного счета от одного до числа элементов и обратного отсчета от числа элементов до одного соответственно. Включив значение счетчика для именованного счетчика, вы можете настроить счетчик на возрастание или убывание, начиная с целочисленного значения.
Обычные счетчики по умолчанию равны 0, если значение сброса не указано. По умолчанию обычные счетчики увеличиваются на единицу, что может быть изменено свойством counter-increment.
h1 {
/* Create the counters "chapter" and "page" and set to initial default value.
Create the counter "section" and set to "4". */
counter-reset: chapter section 4 page;
}
Обратные счетчики
При создании обратных счетчиков без значения, счетчик будет начинаться со значения, равного числу элементов в наборе, отсчитывая вниз, так что последний элемент в наборе будет 1. По умолчанию обратные счетчики уменьшаются на единицу; это также может быть изменено с помощью свойства counter-increment.
h1 {
/* Create reversed counters "chapter" and "section".
Set "chapter" as the number of elements and "section" as "10".
Create the counter "pages" with the initial default value. */
counter-reset: reversed(chapter) reversed(section) 10 pages;
}
Встроенный счетчик элементов списка
Нумерованные списки (<ol>) поставляются со встроенными list-item счетчиками, которые управляют их нумерацией. Эти счетчики автоматически увеличиваются или уменьшаются на единицу с каждым элементом списка. Свойство counter-reset может использоваться для сброса list-item счетчиков. Как и в случае с другими счетчиками, вы можете переопределить значение по умолчанию для list-item счетчиков, используя свойство counter-increment.
Формальное определение
| Начальное значение | none |
|---|---|
| Применяется к | всем элементам |
| Наследуется | нет |
| Вычисленное значение | как указано |
| Тип анимации | по типу вычисленного значения |
Формальный синтаксис
Примеры
Переопределение счетчика элементов списка
В этом примере свойство counter-reset используется для установки начального значения неявного list-item счетчика.
HTML
<ol> <li>First</li> <li>Second</li> <li>Third</li> <li>Fourth</li> <li>Fifth</li> </ol>
CSS
Используя counter-reset, мы устанавливаем неявный list-item счетчик на старт с другого значения, чем значение по умолчанию 1.
ol {
counter-reset: list-item 3;
}
Результат
Используя counter-reset, мы устанавливаем неявный list-item счетчик для начала счета с 3 для каждого ol. Затем, первый элемент будет иметь номер 4, второй — 5 и так далее, аналогично эффекту использования атрибута <ol start="4"> в HTML.
Использование обратного счетчика
В следующем примере объявлен обратный счетчик с именем «priority». Счетчик используется для нумерации пяти задач.
<ul class="stack"> <li>Task A</li> <li>Task B</li> <li>Task C</li> <li>Task D</li> <li>Task E</li> </ul>
li::before {
content: counter(priority) ". ";
counter-increment: priority -1;
}
.stack {
counter-reset: reversed(priority);
list-style: none;
}
В выводе элементы пронумерованы в обратном порядке от 5 до 1. Обратите внимание, что в коде не указано начальное значение счетчика. Браузер автоматически вычисляет начальное значение во время макета, используя значение приращения счетчика.
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
counter-reset |
2 | 12 | 1 | 9.2 | 3 | 18 | 25 | 10.1 | 1 | 1.0 | 4.4 |
list-item |
≤83Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
12 | 1 | 69Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
≤13.1Переопределение начального значения неявного счётчикаlist-item приводит к некорректным значениям для функции counter(), используемой для генерации содержимого, так как она не полностью реализована; см. ошибку 260436. |
83Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
25 | 59Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
≤13.4Переопределение начального значения неявного счётчикаlist-item приводит к некорректным значениям для функции counter(), используемой для генерации содержимого, так как она не полностью реализована; см. ошибку 260436. |
13.0Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
83Переопределение начального значения неявного счётчикаlist-item не оказывает никакого влияния, когда генерируется строка-маркер по умолчанию для элементов списка (::marker); см. ошибку 338233131. |
none |
2 | 12 | 1 | 15 | 3 | 18 | 25 | 14 | 2 | 1.0 | 4.4 |
reset_does_not_affect_siblings |
Нет | Нет | 82 | Нет | Нет | Нет | 82 | Нет | Нет | Нет | Нет |
reversed |
Нет | Нет | 96 | Нет | Нет | Нет | 96 | Нет | Нет | Нет | Нет |
См. также
- Руководство по использованию CSS счётчиков
-
counter-incrementсвойство -
counter-setсвойство -
@counter-styleправило -
counter()иcounters()функции -
contentсвойство -
::markerпсевдокласс - Модуль CSS списков и счётчиков
- Модуль CSS стилей счётчиков
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/counter-reset