<custom-ident>

<custom-ident> CSS 数据类型 表示用作 标识符 的任意用户定义字符串。它区分大小写,并且在某些上下文中禁止使用某些值以防止歧义。

语法

<custom-ident> 的语法类似于 CSS 标识符(如属性名称),不同之处在于它 区分大小写。它由一个或多个字符组成,字符可以是以下任何一种

  • 任何字母字符(AZ,或 az),
  • 任何十进制数字(09),
  • 连字符 (-),
  • 下划线 (_),
  • 转义字符(以反斜杠开头,\),
  • Unicode 字符(格式为反斜杠,\,后跟一个到六个十六进制数字,表示其 Unicode 代码点)

请注意,id1Id1iD1ID1 都是不同的标识符,因为它们 区分大小写

转义字符

任何 Unicode 代码点都可以作为 <custom-ident> 或带引号的 <string> 的一部分进行转义。

在 CSS 中,有几种方法可以转义字符。转义序列以反斜杠 (\) 开头,并以以下内容结尾

  • 一个到六个十六进制数字 (ABCDEF0123456789)。十六进制数字之后可以可选地跟上空格。十六进制转义序列将被替换为其值由这些数字给定的 Unicode 代码点。空格允许这些序列后面跟着实际的十六进制数字(而不是被替换的十六进制数字)。
  • 任何不是十六进制数字或换行符的 Unicode 代码点。

示例

  • "&B" 可以写成 \26 B\000026B
  • "hi.there" 可以写成 hi\.therehi\002Ethere
  • "toto?" 可以写成 toto\?toto\3Ftoto\00003F

要在转义序列之后包含实际的空格,请在转义序列中包含两个空格。

禁止的值

<custom-ident> 不得放在单引号或双引号之间,因为这将与 <string> 相同。此外,第一个字符不能是十进制数字,也不能是连字符 (-) 后跟十进制数字。

为了防止歧义,每个使用 <custom-ident> 的属性都禁止使用特定值

animation-name

禁止使用全局 CSS 值 (unsetinitialinherit),以及 none

counter-resetcounter-increment

禁止使用全局 CSS 值 (unsetinitialinherit),以及 none

@counter-stylelist-style-type

禁止使用全局 CSS 值 (unsetinitialinherit),以及以下值

  • none
  • inline
  • outside

此外,不同的浏览器还实现了一些预定义的值

  • disc
  • circle
  • square
  • decimal
  • cjk-decimal
  • decimal-leading-zero
  • lower-roman
  • upper-roman
  • lower-greek
  • lower-alpha
  • lower-latin
  • upper-alpha
  • upper-latin
  • arabic-indic
  • armenian
  • bengali
  • cambodian
  • cjk-earthly-branch
  • cjk-heavenly-stem
  • cjk-ideographic
  • devanagari
  • ethiopic-numeric
  • georgian
  • 古吉拉特语
  • 旁遮普语
  • 希伯来语
  • 平假名
  • 平假名いろは
  • 日语正式
  • 日语非正式
  • 卡纳达语
  • 片假名
  • 片假名いろは
  • 高棉语
  • 韩语韩文正式
  • 韩语汉字正式
  • 韩语汉字非正式
  • 老挝语
  • 亚美尼亚语(西)
  • 马拉雅拉姆语
  • 蒙古语
  • 缅甸语
  • 奥里亚语
  • 波斯语
  • 简体中文正式
  • 简体中文非正式
  • 泰米尔语
  • 泰卢固语
  • 泰语
  • 藏语
  • 繁体中文正式
  • 繁体中文非正式
  • 亚美尼亚语(东)
  • 公开披露
  • 关闭披露
grid-row-startgrid-row-endgrid-column-startgrid-column-end

禁止使用span值。

view-transition-name

禁止使用全局 CSS 值 (unsetinitialinherit),以及 none

will-change

禁止使用全局 CSS 值 (unsetinitialinherit),以及值 will-changeautoscroll-positioncontents

示例

有效标识符

nono79            A mix of alphanumeric characters and numbers
ground-level      A mix of alphanumeric characters and a dash
-test             A dash followed by alphanumeric characters
_internal         An underscore followed by alphanumeric characters
\22 toto          A Unicode character followed by a sequence of alphanumeric characters
bili\.bob         A correctly escaped period

无效标识符

34rem             It must not start with a decimal digit.
-12rad            It must not start with a dash followed by a decimal digit.
bili.bob          Only alphanumeric characters, _, and - needn't be escaped.
'bilibob'         This would be a <string>.
"bilibob"         This would be a <string>.

规范

规范
CSS 值和单位模块级别 4
# custom-idents
CSS 将更改模块级别 1
# valdef-will-change-custom-ident
CSS 计数器样式级别 3
# typedef-counter-style-name
CSS 列表和计数器模块级别 3
# counter-properties

浏览器兼容性

由于此类型不是真正的类型,而是一个方便类型,用于简化允许值的描述,因此没有浏览器兼容性信息。

另请参阅