XHTML和HTML的class属性值可以以数字开头吗?

15

XHTML和HTML的class属性值可以以数字开头吗?


http://www.w3.org/TR/html401/struct/global.html#adef-class - Šime Vidas
3个回答

14

点。它们必须是 SGML 名称,以字母([A-Za-z])开头,后面可以跟任意数量的字母、数字 ([0-9])、连字符("-")、下划线("_")、冒号(":")和句点(".")。

然而,IE 支持以数字开头的类名。

编辑:meder 指出您可以使用 Unicode 字符,它们似乎在所有浏览器中都有效。我不知道它是否符合规范,但似乎已验证。 请参见 http://css-tricks.com/unicode-class-names/ http://snook.ca/archives/html_and_css/unicode_for_css_class_names


您的报价涉及到ID和NAME令牌。但是类属性的值是CDATA。 - Šime Vidas
@Šime Vidas - 我认为class是一个名称令牌的CDATA列表。 - Adam

6
不行,它们必须以字母开头。尽管如此,一些浏览器可能会错误地支持它们。
编辑:您可以以Unicode转义点开始,并指定数字的代码。
编辑#2:测试用例http://work.arounds.org/sandbox/66/run

你可以使用十六进制代码点来指定数字,.\34 是表示数字4的UTF-8代码,参考链接:http://www.yoursiteisvalid.com/validnews/css-class-not-working-when-name-begins-with-numbers-1000.html/comment-page-1 - meder omuraliev

2
来自CSS规范

“在CSS3中,标识符(包括选择器中的元素名称、类和ID(请参见[SELECT] [还是这仍然是真的]))只能包含字符[A-Za-z0-9]和ISO 10646字符161及以上,再加上连字符(-)和下划线(_);不能以数字或连字符后跟数字开头。它们还可以包含转义字符和任何ISO 10646字符作为数字代码(请参见下一项)。例如,标识符“B&W?”可以写成“B\&W\?”或“B\26 W\3F”。(请参见[UNICODE310]和[ISO10646])。”


2018年:此链接已损坏/不正确。引用的文本在链接页面上不存在,#引用也已损坏。我怀疑该文本是从嵌入CSS2的草稿中提取的,并在后来进行了更新,因此今天的正确链接(因为我需要自己验证这一点来更新旧解析器!)是:https://www.w3.org/TR/CSS2/syndata.html#characters - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接