additive-symbols

Baseline 2023
新推出

自 2023 年 9 月起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在较旧的设备或浏览器上使用。

additive-symbols 描述符是 @counter-style at-rule 的一个成员,用于在 @counter-stylesystem 描述符值设置为 additive 时指定计数器符号。加法系统用于构建 符号值编号 系统,例如罗马数字。

语法

css
/* Single tuple */
additive-symbols: 3 "*";

/* Comma-separated list of tuples */
additive-symbols:
  3 "0",
  2 "\2E\20",
  1 url("symbol.png");

/* Binary counter */
additive-symbols:
  2 "1",
  1 "0";

/* Etruscan (a civilization in ancient Italy) counter  */
additive-symbols:
  100 "𐌟",
  50 "𐌣",
  10 "𐌢",
  5 "𐌡",
  1 "𐌠";

此描述符接受一个逗号分隔的“加法元组”列表,每个元组包含以下两个由空格分隔的值

<integer>

一个非负整数值,指定元组关联符号值的整数权重。

<symbol>

指定用于由元组关联的 <integer> 权重值定义的权重值的计数器符号。

注意: 加法元组必须按权重降序指定;否则,描述符声明无效并被忽略。

描述

additive-symbols 描述符定义了一个逗号分隔的“加法元组”列表。每个“加法元组”包含一个用空格分隔的非负整数和计数器符号。为了有效,列表必须按整数降序排列。整数和符号连接在一起形成计数器符号。

system 描述符的值为 cyclicnumericalphabeticsymbolicfixed 时,请使用 symbols() 描述符而不是 additive-symbols

正式定义

相关的 at-rule@counter-style
初始值n/a(必需)
计算值同指定值

正式语法

additive-symbols = 
[ <integer [0,∞]> && <symbol> ]#

<symbol> =
<string> |
<image> |
<custom-ident>

<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>

<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )

<image-set()> =
image-set( <image-set-option># )

<cross-fade()> =
cross-fade( <cf-image># )

<element()> =
element( <id-selector> )

<image-tags> =
ltr |
rtl

<image-src> =
<url> |
<string>

<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?

<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?

<id-selector> =
<hash-token>

示例

指定加法符号

HTML

在此示例中,system: additiveadditive-symbols 描述符值指定了数字应如何表示为罗马数字。列表中每个 <li> 元素的值根据 @counter-style 中定义的规则转换为罗马数字。

html
<ul>
  <li>One</li>
  <li>Two</li>
  <li>Three</li>
  <li>Four</li>
  <li>Five</li>
  <li value="109">109</li>
  <li>110</li>
</ul>

CSS

css
@counter-style uppercase-roman {
  system: additive;
  additive-symbols:
    1000 M,
    900 CM,
    500 D,
    400 CD,
    100 C,
    90 XC,
    50 L,
    40 XL,
    10 X,
    9 IX,
    5 V,
    4 IV,
    1 I;
}

ul {
  list-style: uppercase-roman;
  padding-left: 5em;
}

结果

对于值为 109 的列表项,数字 C 代表 100IX 代表 9。这为列表项 109 生成了 CIX 计数器。下一个列表项自动获得 110 的值。罗马数字 CX 源自代表 100C 和代表 10X

规范

规范
CSS Counter Styles Level 3
# counter-style-symbols

浏览器兼容性

另见