CARVIEW |
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
range
Baseline
2023
Newly available
Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
range
記述子を使用すると、作成者は、 @counter-style
アットルールを使用して独自のカウンタースタイルを定義する際に、スタイルを適用するカウンター値の 1 つ以上の範囲を指定することができます。 range
記述子が含まれている場合、定義されたカウンターは、設定された範囲内の値にのみ使用されます。カウンター値が指定された範囲外の場合、そのマーカーの表現を構築するには代替スタイルが使用されます。
構文
/* キーワード値 */
range: auto;
/* 範囲の値 */
range: 2 5;
range: infinite 10;
range: 6 infinite;
range: infinite infinite;
/* 複数の範囲の値 */
range:
2 5,
8 10;
range:
infinite 6,
10 infinite;
値
値は、それぞれ下限と上限を含む、カンマで区切られた範囲のリスト、またはキーワード auto
です。
auto
-
カウンター
system
で表現できる数値のセット全体。これらの範囲の値は、カウンターシステムによって異なります。cyclic
,numeric
,fixed
の各システムでは、範囲は負のinfinity
から正のinfinity
までです。alphabetic
およびsymbolic
システムでは、範囲は1
から正のinfinity
までです。additive
システムでは、範囲は0
から正のinfinity
までです。extend
をシステム拡張に使用する場合、その範囲は、拡張されるシステムに対してauto
が生成する範囲となり、日本語、韓国語、中国語、エチオピア語などの複雑な定義済みスタイルの拡張も含まれます。
[ [ <integer> | infinite ]{2} ]#
-
カンマで区切られた範囲のリスト内の各範囲には、2 つの値が含まれ、それぞれは
<integer>
またはキーワードinfinite
のいずれかです。infinite
が範囲の最初の値として使用されている場合、それは負の無限大を表します。2 つ目の値として使用されている場合、それは正の無限大を表します。それぞれの範囲の最初の値は範囲の下限であり、2 つ目の値は上限です(上限を含む)。リスト内のいずれかの範囲の下限が上限よりも大きい場合、そのrange
記述子全体が不正となり、無視されます。
解説
range
記述子の値は、auto
、または負または正の整数、あるいはキーワード infinite
を使用して指定した、下限と上限の範囲をカンマで区切ったリストのいずれかです。
auto
を理解する
値が auto
に設定されている場合、範囲はカウンターシステムの既定の範囲になります。system
が cyclic
、numeric
、fixed
のいずれか場合、範囲は負の無限大から正の無限大になります。system
が alphabetic
または symbolic
の場合、範囲は 1
から正の infinity
になります。 system: additive
の場合、auto
は範囲 0
から正の infinity
になります。
カウンターを拡張する場合、range
が auto
に設定されていると、範囲の値は、そのカウンターの range
値ではなく、拡張されるカウンターの system
の範囲になります。例えば、カウンター "B" に system: extends A
が設定されており、カウンターが alphabetic
カウンターである場合、 "B" に range: auto
を設定すると、 "B" の範囲は 1
から infinity
に設定されます。これは alphabetic
システムの範囲であり、必ずしもカウンター "A" のスタイル定義で設定された範囲とは限りません。 range: auto
が "B" に設定されている場合、 range
は、カウンター A の記述子リストで設定されているe range
値ではなく、 alphabetic
システムの既定の範囲に設定されます。
infinite
の解説
範囲が(auto
ではなく)整数として指定されている場合、値 infinite
を使用して無限大を表すことができます。 infinite が範囲の最初の値として指定されている場合、それは負の無限大として解釈されます。上限として使用される場合、範囲の 2 つ目の値として、正の無限大として取られます。
範囲のリスト
range
の値は、上記で説明した auto
、または 1 つ以上の範囲をカンマで区切ったリストです。カウンタースタイルの範囲は、リスト内で定義されているすべての範囲の和集合になります。
範囲のリスト内のそれぞれの範囲は 2 つの値を取ります。これらの値は、<integer>
またはキーワード infinite
のいずれかです。最初の値は、下限です(下限値を含む)。2 つ目の値は上限です(上限値を含む)。 2 つの整数値の場合、小さい方の値が最初に指定されなければなりません。リスト内のいずれかの範囲の下限が上限よりも大きい場合、range
記述子全体が不正となり、無視されます。 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 を含む範囲のリストです。2 つ目は、7、8、9 を含みます。範囲は、これら 2 つの範囲の和集合、つまり 2、3、4、7、8、9 です。
仕様書
Specification |
---|
CSS Counter Styles Level 3> # counter-style-range> |
ブラウザーの互換性
Loading…
関連情報
@counter-style
記述子:system
,symbols
,additive-symbols
,negative
,prefix
,suffix
,pad
,speak-as
,fallback
- リストスタイルのプロパティ:
list-style
,list-style-image
,list-style-position
symbols()
, 無名のカウンタースタイルを生成する関数記法。- CSS カウンタースタイルモジュール
- CSS リストとカウンターモジュール