Spec-Zone.ru › CSS

range

Базовая версия 2023

Новое

С сентября 2023 года эта функция работает на последних устройствах и версиях браузеров. Возможна несовместимость со старыми устройствами и браузерами.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Дескриптор range позволяет автору указать один или несколько диапазонов значений счётчика, для которых стиль применяется при определении пользовательских стилей счётчиков с помощью правила @counter-style. Когда включён дескриптор range , определённый счётчик будет использоваться только для значений в заданных диапазонах. Если значение счётчика находится вне указанного диапазона, будет использован резервный стиль для построения представления этого маркера.

Синтаксис

/* Keyword value */
range: auto;

/* Range values */
range: 2 5;
range: infinite 10;
range: 6 infinite;
range: infinite infinite;

/* Multiple range values */
range:
  2 5,
  8 10;
range:
  infinite 6,
  10 infinite;

Значения

Значение — это список диапазонов, разделённых запятыми, каждый из которых включает нижнюю и верхнюю границы или ключевое слово auto.

auto

Весь набор чисел, которые может представлять счётчик system. Эти значения диапазона зависят от системы счётчика:

  • Для систем cyclic, numeric, и fixed диапазон — от отрицательного infinity до положительного infinity.
  • Для систем alphabetic и symbolic диапазон — от 1 до положительного infinity.
  • Для систем additive диапазон — от 0 до бесконечности.
  • При использовании extend для расширения системы, диапазон — тот, который auto создаёт для расширяемой системы, включая расширения сложных предопределённых стилей, таких как некоторые японские, корейские, китайские и эфиопские стили счётчиков.
[ [ <integer> | infinite ]{2} ]#

Каждый диапазон в списке диапазонов, разделённых запятыми, включает два значения, каждое из которых является либо <integer>, либо ключевым словом infinite. Если infinite используется в качестве первого значения в диапазоне, оно представляет отрицательную бесконечность; если оно используется в качестве второго значения, оно представляет положительную бесконечность. Первое значение каждого диапазона — нижняя граница диапазона, а второе значение — верхняя граница, включая её. Если нижняя граница любого диапазона в списке выше верхней границы, весь дескриптор range считается неверным и будет проигнорирован.

Описание

Значение дескриптора range может быть auto или списком диапазонов нижней и верхней границы, разделённых запятыми, с использованием отрицательных или положительных целых чисел или ключевого слова infinite.

Понимание auto

Когда значение установлено в auto, диапазон является стандартным для системы счётчика. Если система system — cyclic, numeric, или fixed, диапазон будет от минус бесконечности до плюс бесконечности. Если система system — alphabetic или symbolic, диапазон будет от 1 до положительной infinity. Для system: additive, auto даёт диапазон от 0 до положительной infinity.

При расширении счётчика, если range установлено в auto, значение диапазона будет диапазоном system счётчика, который расширяется, а не значением range этого счётчика. Например, если счётчик «B» имеет system: extends A установленным, где счётчик является счётчиком alphabetic, установка range: auto на «B» устанавливает диапазон «B» от 1 до infinity. Это диапазон системы alphabetic, а не диапазон, установленный в стиле счётчика «A». При установке range: auto на «B», range устанавливается в стандартный диапазон системы alphabetic, а не в значение range установленное в списке дескрипторов счётчика A.

infinite объяснение

Когда диапазон задан целыми числами (вместо auto), значение infinite может использоваться для обозначения бесконечности. Если *бесконечность* указана как первое значение в диапазоне, это интерпретируется как минус бесконечность. Если она используется в качестве верхней границы, второго значения в паре диапазонов, она воспринимается как плюс бесконечность.

Список диапазонов

Значение range — это либо auto, обсуждаемое выше, либо список одного или нескольких диапазонов, разделённых запятыми. Диапазон стиля счётчика является объединением всех диапазонов, определённых в списке.

Каждый диапазон в списке диапазонов содержит два значения. Эти значения — это либо <integer>, либо ключевое слово infinite. Первое значение — это нижняя граница, включая её. Второе значение — верхняя граница, включая её. Для двух целочисленных значений, меньшее значение должно стоять первым. Если нижняя граница любого диапазона в списке выше верхней границы, весь дескриптор range считается неверным и будет проигнорирован. Ключевое слово infinite не делает диапазон недействительным, потому что положение infinite определяет его значение; либо минус бесконечность, либо плюс бесконечность, в зависимости от того, является ли оно нижней или верхней границей соответственно.

Формальное определение

Связанное правило @counter-style
Начальное значение auto
Вычисленное значение как указано

Формальный синтаксис

range = 
[ [ <integer> | infinite ]{2} ]# |
auto

Примеры

Установка стиля счётчика для диапазона

HTML

<ul class="list">
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
  <li>Six</li>
  <li>Seven</li>
  <li>Eight</li>
  <li>Nine</li>
  <li>Ten</li>
</ul>

CSS

@counter-style range-multi-example {
  system: cyclic;
  symbols: "\25A0" "\25A1";
  range:
    2 4,
    7 9;
}

.list {
  list-style: range-multi-example;
}

Результат

Первый диапазон в списке — 2, 3 и 4. Второй — 7, 8 и 9. Диапазон — объединение этих двух диапазонов, или 2, 3, 4, 7, 8 и 9.

Спецификации

Спецификация
CSS Counter Styles Level 3
# counter-style-range

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в IOS Samsung Internet WebView Android
range 91 91 33 77 17 91 33 64 17 16.0 91

См. также

  • Другие @counter-style дескрипторы: system, symbols, additive-symbols, negative, prefix, suffix, pad, speak-as, и fallback
  • list-style, list-style-image, list-style-position
  • symbols(): функциональная запись для создания анонимных стилей счётчиков.
  • Модуль 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-style/range

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API