为什么我不能将数值作为元素的ID?

pen*_*pen 18 html standards web-standards

在一个项目上工作,差不多完成了,只是整理了HTML,我发现你并不是真的被允许拥有一个只是一个数字的ID-

<a>属性"id"具有无效值"567"属性ID的类型为ID.如上所述,它应该以字母开头并且没有空格

Good    <a id="567" href="/index.html">
Good    <a id="n567" href="/index.html">
Run Code Online (Sandbox Code Playgroud)

我可以通过我的代码并添加一个字母,然后在我的jQuery中使用该值时将其删除,但它会乱七八糟,我真的不需要.

有没有理由我不应该使用数字作为ID?

Luk*_*keH 30

这正是规范所说的.

HTML 4规范:

IDNAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(" - "),下划线("_") ,冒号(":")和句号(".").

好消息是HTML 5规范更宽松:

id属性指定其元素的唯一标识符(ID).该值必须在元素的主子树中的所有ID中唯一,并且必须至少包含一个字符.该值不得包含任何空格字符.

  • 我从2002年开始使用数字ID,没有任何浏览器无法正常使用它们.我认为这样的规范和无用一样好,可以安全地被忽视. (6认同)
  • 第一次 HTML5 对我有用!仍然没有真正的理由为什么 HTML4 不喜欢它,但我很高兴我没有做错任何事。 (2认同)

Mat*_*all 12

为什么我不能将数值作为元素的ID?

因为这就是HTML4规范所要求的.


另一方面,HTML5规范已经删除了这一要求.

  • HTML 4规范在此提及:http://www.w3.org/TR/html4/types.html#type-name (2认同)