“@counter-style”ルール
“@counter-style”ルールはリスト・アイテムのリスト・カウンターの値をどのようにしてリスト・マーカーとして表現するかを定めたカウンター・スタイルを定義します。
カウンター・スタイルは“@counter-style”ルールの中に含まれる“system”ディスクリプタと“symbols”ディスクリプタもしくは“additive-symbols”ディスクリプタの組み合わせによってそのアルゴリズムが指定されます。
“@counter-style”ルールによって定義されたカウンター・スタイルは“@counter-style”ルールが含まれる文書全体で使用可能になります。
“@counter-style”ルールの構文
“@counter-style”ルールは“@counter-style”に続く、カウンター・スタイルの名前(“<counter-style-name>”)と宣言リスト(“<declaration-list>”)を含む“{”と“}”で囲まれたブロックからなります。
“<counter-style-name>”は“none”と一致しない“<custom-ident>”として定義します。なお、“decimal”、“disc”、“square”、“circle”、“disclosure-open”と“disclosure-closed”のキーワードは有効な“<counter-style-name>”ですが、“@counter-style”ルールでカウンター・スタイルの名前を付ける時には使用することはできず、使用した場合は“@counter-style”ルールは無効となります。
“<counter-style-name>”は大文字と小文字が区別されますが、仕様書にあるカウンター・スタイルの名前はパース時には小文字に揃えられます。
同じ“<counter-style-name>”で定義された“@counter-style”ルールが複数あって競合する場合は通常のカスケードの規則に則って1個だけ“@counter-style”ルールが選択されます。“@counter-style”ルールが競合した場合、カスケードによって選ばれた“@counter-style”ルールの設定のみが使用され、他の“@counter-style”ルールの設定は使用される“@counter-style”ルールに含まれない設定も含めて完全に上書きされます。
カウンター・スタイルは“@counter-style”ルールの中に含まれるディスクリプタによって定義されます。
“@counter-style”ルールはそれぞれ明示されているか否かに関係なくすべてのディスクリプタの値を指定します。明示的に値が指定されていないディスクリプタの値には仕様書で定義されているディスクリプタの初期値が設定されます。“@counter-style”ルールの中に同じディスクリプタが複数含まれている場合は一番最後に記述されているものの値が使用され、それよりも前に記述されているものの値は無視されます。
ディスクリプタは“@counter-style”ルールの中でだけ意味を持ち、文書の要素には適用されません。また、ディスクリプタがどの要素に適用され得るのかや子要素へ継承されるのか否かについての決まりはありません。
不明なディスクリプタや文法上の誤りがあるディスクリプタは無視されますが、それによって“@counter-style”ルール自体が無効になることはありません。また、“@counter-style”ルールはCSSの前方互換性の要件を満たすため、“@counter-style”ルールを認識できないユーザー・エージェントはエラーを出さずに“@counter-style”ルールを無視します。
“@counter-style”ルールのディスクリプタ
ディスクリプタ | 値 | ||
---|---|---|---|
ディスクリプタ | 説明 | 値 | 説明 |
system | カウンター・スタイルが使用するアルゴリズム | cyclic | 与えられた記号を周期的な記号として解釈してリスト・マーカーを表現します |
symbolic | 与えられた記号をリスト・マーカーを表現します | ||
alphabetic | 与えられた記号を全単射的記数法の桁として解釈してリスト・マーカーを表現します | ||
numeric | 与えられた記号を位取り記数法の桁として解釈してリスト・マーカーを表現します | ||
additive | 与えられた記号を加算的記数法の桁として解釈してリスト・マーカーを表現します | ||
fixed <integer> | 与えられた記号を有限の記号として解釈してリスト・マーカーを表現します | ||
extends <counter-style-name> | 他のカウンター・スタイルの設定を拡張します | ||
negative | リスト・マーカーにマイナス記号として追加する文字 | <symbol> | 指定された“<symbol>”値をマイナス記号としてリスト・マーカーに追加します |
prefix | リスト・マーカーの後に追加する文字 | <symbol> | 指定された“<symbol>”値をリスト・マーカーの前に追加します |
suffix | リスト・マーカーの後に追加する文字 | <symbol> | 指定された“<symbol>”値をリスト・マーカーの後に追加します |
range | カウンター・スタイルが定義される値の範囲 | auto | 【“cyclic”、“numeric”、“fixed”の場合】範囲は負の無限大から正の無限大です |
【“alphabetic”、“symbolic”の場合】範囲は“1”から正の無限大です | |||
【“additive”の場合】範囲は“0”から正の無限大です | |||
【“extends”の場合】拡張元のカウンター・スタイルで“range: auto;”とした場合と同じ範囲 | |||
<integer> | カウンター・スタイルが定義しているリスト・カウンターの上限/下限を指定する | ||
infinite | カウンター・スタイルが定義しているリスト・カウンターの上限/下限は正/負の無限大 | ||
pad | リスト・マーカーが達するべき桁数と不足する桁を埋める文字 | <integer> <symbol> | リスト・マーカーが達するべき桁数と不足する桁を埋める文字を指定します |
fallback | 代替のカウンター・スタイル | <counter-style-name> | 指定された“<counter-style-name>”値で定義されたカウンター・スタイルを代替のカウンター・スタイルとします |
symbols | リスト・マーカーを生成するために使用する記号 | <symbol> | 指定された“<symbol>”値を使用してリスト・マーカーを生成します |
additive-symbols | <integer> <symbol> | 指定された“<symbol>”値と位の量を使用してリスト・マーカーを生成します | |
speak-as | リスト・マーカーの読み上げ方 | auto | 【“alphabetic”の場合】“spell-out”と同じ |
【“cyclic”の場合】“bullets”と同じ | |||
【“extends”の場合】拡張元のカウンター・スタイルで“speak-as: auto;”とした場合と同じ範囲 | |||
【上記以外の場合】“numbers”と同じ | |||
bullets | ユーザー・エージェントが順不同リストのアイテムを読み上げる時の既定の言い回しを使用します | ||
numbers | リスト・カウンターの値である数値をコンテント言語で読み上げます | ||
words | 通常通りカウンター表現を生成してそれをコンテント言語で読み上げます | ||
spell-out | 通常通りカウンター表現を生成してそれをコンテント言語で一文字ずつ読み上げます | ||
<counter-style-name> | 指定されたカウンター・スタイルでリスト・カウンターの値を読み上げます |
“additive-symbols”ディスクリプタは“system”ディスクリプタの値が“additive”の場合に使用し、それ以外の場合は“symbols”ディスクリプタを使用します。ただし、“system”ディスクリプタの値が“extends”の場合は“symbols”ディスクリプタと“additive-symbols”ディスクリプタは使用できません。
“<symbol>”値
“<symbol>”値は“symbols”ディスクリプタや“additive-symbols”ディスクリプタなどでリスト・マーカーを表現するために使用される記号(文字)を指定するために使用されます。
“<symbol>”値は以下の3種類の構文で指定することができます。
値 | 説明 |
---|---|
<string> | “<string>”値として有効な文字列でリスト・マーカー用の記号を指定 |
<image> | “url()”関数を使用した画像ファイルなどでリスト・マーカー用の記号を指定 |
<custom-ident> | “<custom-ident>”値として有効な識別子でリスト・マーカー用の記号を指定 |
“<string>”値や“<custom-ident>”値で指定される文字は1文字である必要はなく、1個の“<symbol>”値を複数の文字で構成することもできます。
特殊な記号や絵文字などあらゆる文字が“<symbol>”値として使用可能ですが、文書を表示するのに使用可能なフォントにその文字が含まれていない場合にはリスト・マーカーが正しく表示されないので注意が必要です。