CSS counter-reset — створити лічильник


Властивість counter-reset встановлює змінну, в якій буде зберігатися лічильник відображень певного елемента, а також початкове значення цього лічильника.

article {
  counter-reset: section;
}
section {
  counter-increment: section;
}
section h2:before {
  content: counter(section) '. ';
}

Лічильник може виводитися за допомогою властивості content та псевдо елементів :after чи :before.

Кожен елемент має набір лічильників, які успадковуються через дерево документів. Лічильники мають ім'я, ціле значення та елемент-творець. Вони також можуть мати ще один вкладений лічильник.

Властивість counter-reset створює один або кілька нових лічильників для елементу. Кожен лічильник має ім'я / ідентифікатор і підрахунок, пов'язаний з цим ідентифікатором.

автор: Svitlana

Загальний опис

автор: NagarD

Синтаксис

counter-reset: none|name number|initial|inherit;

Властивість counter-reset може отримувати 5 значень:

none

Забороняє ініціацію лічильника для поточного селектора

автор: Svitlana

name

Задає одну або кілька змінних, в яких буде зберігатися значення лічильника. Значення розділяються між собою пробілом

автор: Svitlana

number

Початкове значення кожного ідентифікатора. Без задання дорівнює 0

автор: Svitlana

initial

Встановлює властивість у значення без задання

автор: Svitlana

inherit

Вказує на спадковість властивості від свого батьківського елемента

автор: Svitlana

Значення без задання: none
Наслідує: Ні
Анімується: Ні
JavaScript синтаксис: object.style.counterReset="section"

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
2 1 3 9.2 12 8
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 25 1

Приклади

+ запропонувати свій приклад у пісочниці

counter-reset заводить лічильник section на body, а subsection скидає на кожному h1 — тому підрозділи другого розділу знову рахуються з одиниці.

HTML

<h1>Вступ</h1>
<h2>Історія</h2>
<h2>Сьогодення</h2>
<h1>Практика</h1>
<h2>Приклади</h2>

CSS

body {
    counter-reset: section;
}

h1 {
    counter-reset: subsection;
}

h1::before {
    counter-increment: section;
    content: "Розділ " counter(section) ". ";
}

h2::before {
    counter-increment: subsection;
    content: counter(section) "." counter(subsection) " ";
}
автор: Svitlana

Використання

HTML

<h1>HTML</h1>	
<p>Самий початок...</p>

<h1>CSS</h1>
<p>Трохи більше, ніж початок.</p>

<h1>JavaScript</h1>	
<p>Не початок, але і не кінець.</p>

CSS

body {
  line-height: 0.8em;
  counter-reset: chapter;
}

h1 {
  font-size: 18px;
}

h1:before {
  content: "Частина № " counter(chapter) ": ";
  counter-increment: chapter;
}
автор: Svitlana

Обидва списки нумеруються однаковим лічильником. У першому counter-reset стоїть на самому пункті, тож лічильник заводиться наново на кожному рядку й усі номери дорівнюють одиниці. У другому скидання винесено на список — нумерація йде як слід.

HTML

<p>counter-reset на пункті:</p>
<ol class="wrong">
    <li>перший</li>
    <li>другий</li>
    <li>третій</li>
</ol>
<p>counter-reset на списку:</p>
<ol class="right">
    <li>перший</li>
    <li>другий</li>
    <li>третій</li>
</ol>

CSS

ol {
    padding: 0;
    list-style: none;
}
li::before {
    content: counter(n) ". ";
    font-weight: bold;
    color: #1e6fd9;
}
.wrong li {
    counter-reset: n;
    counter-increment: n;
}
.right {
    counter-reset: n;
}
.right li {
    counter-increment: n;
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід