我在找出 HTML 标记的有效字符时遇到问题。
在这个(符号 (@) 是一个有效的 HTML/XML 标记字符吗?)答案中说:
再看一下XML规范:
一个标签包括:
'<' 名称(S 属性)* S? '>' 名称包括:
NameStartChar (NameChar)* 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] NameChar 包括:
名称开始字符 | "-" | “。” | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] @ 符号是 U+0040
因此@ 符号在 NameChar 或 NameStartChar 中无效,因此在 Name 中无效。
但是在 HTML 语法页面(http://www.w3.org/TR/html-markup/syntax.html#tag-name)上,它只说:
标签名称在元素开始标签和结束标签中使用,以给出元素的名称。HTML 元素的名称都只使用 0-9、a-z 和 A-Z 范围内的字符。
HTML 标记名称中的有效字符是什么?HTML4、XHTML 和 HTML5 之间有区别吗?