可接受的值
对于身份证
Version >= 五
对 id
的价值的唯一限制是:
- 它必须在文档中是唯一的
- 它不能包含任何空格字符
- 它必须包含至少一个字符
所以值可以是所有数字,只有一位数,只是标点字符,包括特殊字符,等等。只是没有空格。
所以这些都是有效的:
<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 的上下文。
在 id
或 class
的值中使用数字,标点符号或特殊字符可能会在其他上下文中引起麻烦,例如 CSS,JavaScript 和正则表达式。
例如,虽然以下 id
在 HTML5 中有效:
<div id="9lions"> ... </div>
…它在 CSS 中无效:
在 CSS 中,标识符 (包括选择器中的元素名称,类和 ID)只能包含字符[a-zA-Z0-9]和 ISO 10646 字符 U + 00A0 和更高,加上连字符( - )和下划线( _); 它们不能以数字,两个连字符或连字符后跟数字开头。 (重点补充)
在大多数情况下,你可以在具有限制或特殊含义的上下文中转义字符。