语法
CSS 标识符由一个或多个字符组成,可以是以下任意字符:
- 范围
A-Z和a-z中的任意 ASCII 字符 - 任意十进制数字 (
0到9) - 连字符 (
-) - 下划线 (
_) - 任意其他 Unicode 字符
U+00A0及以上(即,任何其他非 ASCII Unicode 字符) - 转义字符
此外,标识符不能以未转义的数字开头,也不能以未转义的连字符后跟未转义的数字开头。
请注意,id1、Id1、iD1 和 ID1 都是不同的标识符,因为它们是区分大小写的。另一方面,由于有几种方法可以转义字符,所以 toto\? 和 toto\3F 是相同的标识符。
转义字符
转义字符意味着以一种改变软件系统解释方式的方式来表示它。在 CSS 中,您可以通过在字符前面添加反斜杠 (\) 来转义字符。除了十六进制数字 0-9、a-f 和 A-F 之外的任何字符都可以通过这种方式转义。例如,& 可以转义为 \&。
您还可以使用反斜杠后跟字符的 Unicode 码点(由一到六个十六进制数字表示)来转义任何字符。例如,& 可以转义为 \26。在这种用法中,如果转义字符后面跟着一个十六进制数字,请执行以下操作之一:
- 在 Unicode 码点后放置一个空格或其他空白字符。
- 提供被转义字符的完整六位 Unicode 码点。
例如,字符串 &123 可以转义为 \26 123 (带空格) 或 \000026123 (带 & 的六位 Unicode 码点),以确保 123 不被视为转义模式的一部分。
示例
有效标识符
nono79 /* A mix of alphanumeric characters and numbers */ ground-level /* A mix of alphanumeric characters and a dash */ -test /* A hyphen followed by alphanumeric characters */ --toto /* A custom-property like identifier */ _internal /* An underscore followed by alphanumeric characters */ \22 toto /* An escaped character followed by alphanumeric characters */ \000022toto /* Same as the previous example */ scooby\.doo /* A correctly escaped period */ 🔥123 /* A non-ASCII character followed by numbers */
无效标识符
34rem /* Must not start with a decimal digit */ -12rad /* Must not start with a dash followed by a decimal digit */ scooby.doo /* ASCII characters apart from alphanumerics must be escaped */ 'scoobyDoo' /* Treated as a string */ "scoobyDoo" /* Treated as a string */
规范
| 规范 |
|---|
| CSS 值和单位模块第 4 级 # typedef-ident |
浏览器兼容性
由于此类型不是真实类型,而是用于简化其他 CSS 语法定义的便捷类型,因此没有此类浏览器兼容性信息。