在CSS中,类名选择器是由一个点(.)后跟类名来定义的。类名可以包含以下字符:
- 字母(a-z,A-Z)。
- 数字(0-9),但不能作为第一个字符。
- 下划线(_)。
- 破折号(-),但不能作为第一个字符,除非后面有其他合法字符。
- ASCII字符:在某些情况下,可以使用转义序列。
- Unicode字符:可以使用转义序列,允许几乎所有的字符,包括非ASCII字符。
CSS类名的第一个字符不能是数字、破折号,或者更具体地说,不能是任何可以构成数字的字符,包括加号、减号、小数点、或者数字本身。但是,可以通过转义序列在类名中使用这些字符。
CSS类名也必须遵守以下规则:
- 不能包含空格。
- 不能包含任何不被允许的特殊字符,如 !@#$%^&*()=+[]{}|;:"'<>,/?等。
- 不能以破折号 -开头,如果后面没有至少一个更多的字符,因为这会与CSS的“否定”伪类选择器混淆。
例如,以下是一些合法的CSS类名:
/* 合法的类名 */ .my-class {} .class_name {} .class-name {} .class3name {} .u8 {} .\31stElement {} /* 使用转义序列允许数字开头 */
以下是一些不合法的CSS类名,因为它们违反了上述规则:
/* 不合法的类名 */ .3rd-class {} /* 数字开头 */ .-class-name {} /* 用破折号开头,没有紧跟其他字符 */ .my class {} /* 包含空格 */ .$dollar {} /* 包含特殊字符 */
在实践中,开发者通常会选择意义清晰且易于理解的类名,以便维护CSS代码的可读性和可管理性。
