为HTML元素创建id属性时,该值有哪些规则?


当前回答

从HTML 4规范。。。

ID和NAME标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。

其他回答

根据HTML 4规范:

ID和NAME标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“_”)、冒号(“:”)和句点(“.”)。

一个常见的错误是使用以数字开头的ID。

HTML5:

它消除了对id属性的额外限制(请参见此处)。剩下的唯一要求(除了文件中的唯一要求)是:

该值必须至少包含一个字符(不能为空)它不能包含任何空格字符。


HTML5之前:

ID应匹配:

[A-Za-z][-A-Za-z0-9_:.]*

必须以A-Z或A-Z字符开头可以包含-(连字符)、_(下划线)、:(冒号)和。(期间)

但我们应该避免:和。因为:

例如,一个ID可以被标记为“a.b:c”,并在样式表中被引用为#a.b:cc,但除了作为元素的ID之外,它还可以表示ID“a”、类“b”、伪选择器“c”。最好避免混淆,远离使用。和:总计。

要引用带句点的id,需要使用反斜杠。我不确定连字符或下划线是否相同。

例如:

HTML

<div id="maintenance.instrumentNumber">############0218</div>

CSS

#maintenance\.instrumentNumber{word-wrap:break-word;}

严格来说,它应该匹配

[A-Za-z][-A-Za-z0-9_:.]*

但是jQuery似乎有冒号的问题,所以最好避免使用冒号。

任何字母数字值“-”和“_”都是有效的。但是,您应该以A-Z或A-Z之间的任何字符开始id名称。