可接受的值

对于身份证

Version >= 五

id 的价值的唯一限制是:

  1. 它必须在文档中是唯一的
  2. 它不能包含任何空格字符
  3. 它必须包含至少一个字符

所以值可以是所有数字,只有一位数,只是标点字符,包括特殊字符,等等。只是没有空格。

所以这些都是有效的:

<div id="container"> ... </div>
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>

这是无效的:

<div id=" "> ... </div>

当包含在同一文档中时,这也是无效的:

<div id="results"> ... </div>
<div id="results"> ... </div>

Version <= 4.01

id 值必须以字母开头,然后只能跟随:

  • 字母(AZ / az)
  • 数字(0-9)
  • 连字符(“ - ”)
  • 下划线(“_”)
  • 冒号(“:”)
  • 句号(“。”)

参考上面 HTML5 部分中的第一组示例,只有一个有效:

<div id="container"> ... </div>

这些也是有效的:

<div id="sampletext"> ... </div>
<div id="sample-text"> ... </div>
<div id="sample_text"> ... </div>
<div id="sample:text"> ... </div>
<div id="sample.text"> ... </div>

同样,如果它不是以字母(大写或小写)开头,则它无效。

对于一个类

类的规则与 id 基本相同。不同的是,class并不需要在文件中是唯一的。

参考上面的示例,虽然这在同一文档中无效:

<div id="results"> ... </div>
<div id="results"> ... </div>

这完全没问题:

<div class="results"> ... </div>
<div class="results"> ... </div>

重要说明:如何在 HTML 之外处理 ID 和 Class 值

请记住,上面的规则和示例适用于 HTML 的上下文。

idclass 的值中使用数字,标点符号或特殊字符可能会在其他上下文中引起麻烦,例如 CSS,JavaScript 和正则表达式。

例如,虽然以下 id 在 HTML5 中有效:

<div id="9lions"> ... </div>

…它在 CSS 中无效:

4.1.3 字符和案例

在 CSS 中,标识符 (包括选择器中的元素名称,类和 ID)只能包含字符[a-zA-Z0-9]和 ISO 10646 字符 U + 00A0 和更高,加上连字符( - )和下划线( _); 它们不能以数字,两个连字符或连字符后跟数字开头(重点补充)

在大多数情况下,你可以在具有限制或特殊含义的上下文中转义字符。

W3C 参考文献