Сброс и приращение

Основа создания счетчиков – возможность задавать для них как точку отсчета, так и приращение на некоторую величину. Первое осуществляется с помощью свойства counter reset. Идентификатор счетчика – это просто метка, созданная автором. Счетчик подраздела можно было бы назвать subsection, subsec, ss или bob. Для создания идентификатора достаточно выполнить его сброс или приращение. В следующем правиле счетчик chapter определен через сброс:

h1 {counter-reset: chapter;}

По умолчанию счетчик обнуляется. Если требуется, чтобы нумерация начиналась с другого числа, его можно указать после идентификатора:

h1#ch4 {counter-reset: chapter 4;}

Также можно одновременно сбросить несколько идентификаторов, применяя пары идентификатор-целое. Если целое отсутствует, используется значение по умолчанию – нуль:

h1 {counter-reset: chapter 4 section -1 subsec figure 1;}
/* 'subsec' сбрасывается в 0 */

Как следует из предыдущего примера, допускаются и отрицательные значения. Будет совершенно правомерно задать –32768 и начать нумерацию с этого значения. CSS не определяет, что должны делать агенты пользователя с отрицательными значениями счетчиков в нечисловых системах счета.


Например, не оговаривается, что делать, если значение счетчика равно –5, но стиль его представления – upper-alpha. Для осуществления прямого счета необходимо свойство, показывающее, что элемент увеличивает значение счетчика. В противном случае счетчик сохранял бы значение, заданное ему объявлением counter-reset. Таким свойством является, что и не удивительно, counter-increment.

Как и counter-reset, counter-increment принимает пары идентификатор-целое, и целое число в этой паре может равняться нулю или быть как отрицательным, так и положительным. Разница в том, что если в свойстве counter-increment целое число опускается, по умолчанию ему присваивается значение 1, а не 0. Например, вот как агент пользователя мог бы определить счетчики для воссоздания традиционной нумерации списков 1, 2, 3:

ol {counter-reset: ordered;} /* по умолчанию – 0 */
ol li {counter-increment: ordered;} /* по умолчанию – 1 */

Но автор мог бы захотеть считать от нуля в обратном направлении, т. е. нумерация элементов списка производилась бы по возрастающей по модулю в отрицательной числовой области. Для этого потребовалась бы всего лишь небольшая поправка:

ol {counter-reset: ordered;} /* по умолчанию – 0 */
ol li {counter-increment: ordered -1;}

Нумерация списков тогда была бы такой: –1, –2, –3 и т. д. Если заменить –1 на –2, списки нумеровались бы так: –2, –4, –6 и т. д.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела CSS на эту тему:
Вставка генерируемого содержимого
Вставка значений атрибутов
Генерируемое содержимое
Генерируемые кавычки
Изображения для элементов списка