HTML属性名称中允许使用哪些字符?

在HTML属性名称=值对中,“名称”部分允许的字符是什么? …..看看一些常见的属性 ,似乎只有字母(az和AZ)被使用,但是什么其他的字符也可以被允许?…也许数字(0-9),连字符( – )和句点(。)…有没有这方面的规范?

这取决于你“允许”的含义。 每个标签都有一个固定的有效属性名称列表,在html中它们是不区分大小写的。 在一个重要的意义上,只有这些正确顺序的字符是“允许的”。

查看它的另一种方式是浏览器会将哪些字符视为有效的属性名称。 这里最好的build议来自HTML 5的parsing器规范,可以在这里find: https : //html.spec.whatwg.org/multipage/syntax.html#attributes-2

它说,除了制表符,换行符,换页符,空格,斜线,大于符号,引号,撇号和等号之外的所有字符将被视为属性名称的一部分。 就个人而言,我不会试图推动这个边缘情况。

假设你在谈论XHTML,XML规则就适用了。

http://www.w3.org/TR/2008/REC-xml-20081126/#NT-名称;

名称和标记

 [4] NameStartChar ::= ":" | [AZ] | "_" | [az] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] [4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] [5] Name ::= NameStartChar (NameChar)* [6] Names ::= Name (#x20 Name)* [7] Nmtoken ::= (NameChar)+ [8] Nmtokens ::= Nmtoken (#x20 Nmtoken)* 

也许我错过了一些东西,但我相信这个问题是基于一个错误的假设。 在HTML中,属性是根据固定的规范严格定义的 。 如果你“组成”你自己的属性名称,那么你不再写有效的HTML。

允许的值在w3.org上列出。 如果您添加一个自定义属性,那么您不再编写HTML。