有效的HTML标签名称字符

Mat*_*zzi 9 html tags html5 html4

我在查找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包含:

NameStartChar | “-” | “。” | [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之间有区别吗?

Fab*_*ney -1

HTML 文档必须符合 HTML 规范。XML 文档必须符合 XML 规范。XHTML 文档必须符合 XML 和 HTML 规范。

因此,对于 XHTML 文档,您必须从两个规范中获取有效字符的交集。由于 XHTML 基于 XML,因此它的规范不允许使用 XML 中禁止的字符。因此,XHTML 中允许的字符始终是 XML 中的字符的子集。因此允许的字符来自 XHTML 规范。