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 |
| Вычисленное значение | как указано |
Формальный синтаксис
Примеры
Установка стиля счётчика для диапазона
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