<分区>
我在找出 HTML 标签的有效字符时遇到问题。
在这个(Is the at-sign (@) a valid HTML/XML tag character?)答案中说:
After another look at the XML Specification:
A tag consists of:
'<' Name (S Attribute)* S? '>' A Name consists of:
NameStartChar (NameChar)* A NameStartChar consists of:
":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] A NameChar consists of:
NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] The @ sign is U+0040
So the @ sign is not valid in a NameChar or a NameStartChar, and thus not valid in a Name.
但在 HTML 语法页面 ( http://www.w3.org/TR/html-markup/syntax.html#tag-name ) 上它只说:
Tag names are used within element start tags and end tags to give the element’s name. HTML elements all have names that only use characters in the range 0–9, a–z, and A–Z.
HTML 标签名称中的有效字符是什么? HTML4、XHTML 和 HTML5 之间有区别吗?