【问题标题】:Valid HTML tag name character [closed]有效的 HTML 标记名称字符 [关闭]
【发布时间】:2013-03-03 11:43:04
【问题描述】:

我在找出 HTML 标记的有效字符时遇到问题。

在这个 (Is the at-sign (@) a valid HTML/XML tag character?) 的回答中说:

再看XML规范:

一个标签包括:

'' 名称包括:

NameStartChar (NameChar)* NameStartChar 包括:

":" | [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] NameChar 包括:

NameStartChar | "-" | “。” | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040] @ 符号是 U+0040

所以@符号在 NameChar 或 NameStartChar 中无效,因此 在名称中无效。

但在 HTML 语法页面 (http://www.w3.org/TR/html-markup/syntax.html#tag-name) 上只显示:

标签名称用于元素开始标签和结束标签中 元素的名称。 HTML 元素都有只使用字符的名称 在 0–9、a–z 和 A–Z 范围内。

HTML 标记名称中的有效字符是什么? HTML4、XHTML和HTML5之间有区别吗?

【问题讨论】:

  • 有效的 HTML 字符是那些在 HTML 规范中提到的字符。有效的 XML 字符是 XML 规范中提到的那些。有什么困惑?
  • 这就是我真的不喜欢 StackOverflow 的原因:Google 上的热门搜索结果,但却是一个没有答案的封闭问题,因为一些模组决定关闭社区(或潜在社区)。自定义 HTML 标签现在已经成为现实,W3C 规范的官方草案说标签名称的 XML 字符列表现在对 HTML 有效!结束合法问题真的让我很恼火,并说明了为什么我不经常参加这里。例如,写universal-ish tag parser时,这个问题是有道理的。
  • 完全同意@CubicleSoft - 最近我看到很多有效的问题因为最愚蠢的原因而被关闭。随着 StackOverflow 的发展,每个实体都会发生这种情况,它陷入了一些对社区弊大于利的死板“规则”中。如果人类历史上的每个人都被困在如此严格的参数中,我们还不会退出石器时代。对于程序员来说,跳出框框思考以取得进步是最重要,但是一旦实体开始变得更大,他们往往总是会忘记最初是什么让他们变得伟大,并结束在历史的垃圾箱里。
  • “很难说出这里要问什么”对于最初的问题可能是正确的,但现在它非常清晰、有效并且符合网站的格式。 @CubicleSoft 的答案就是我来这里的目的。

标签: html tags html4


【解决方案1】:

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

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

【讨论】:

  • XHTML 不仅仅是 XML 格式的 HTML 文档。 W3C 定义了 XHTML 的特定规范。附带说明:没有对应于 HTML5 的 XHTML 规范
  • @xorcus 没错,我从来没有说过像XHTML is not just a XML-formatted HTML document. 这样的话。我想你误解了XHTML documents must fit XML and HTML specification.。我并不是说仅此一项就足够了。
  • 请举几个例子?
猜你喜欢
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 2015-05-12
  • 2017-03-18
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
相关资源
最近更新 更多