【问题标题】:What's the reason behind not allowing self-closing tag in custom element in spec?不允许在规范中的自定义元素中使用自闭合标签的原因是什么?
【发布时间】:2017-07-31 14:24:55
【问题描述】:

<self-closing /> 标签不允许出现在 HTML 自定义元素中。

为什么会这样?

很多情况只需要void tag,我猜这样代码会更易读。 另一方面,它更直接地暗示语义。

就像<hr />,代码本身意味着里面不应该有任何孩子,因为没有地方放。 此外,它与孩子无关。

自定义元素不能自动关闭,因为 HTML 只允许少数 元素是自闭的。 (read more)

【问题讨论】:

  • “当前的答案没有包含足够的细节”——你可以使用 cmets 来解释你在寻找什么额外的细节。
  • 当前答案?
  • 我引用了你提供赏金的原因。
  • 没关系,你的回答很有说服力,谢谢。但我想要一些哲学的东西,更多。

标签: html web-deployment web-component custom-element


【解决方案1】:

浏览器必须对 void 元素进行特殊处理,以便它知道立即关闭它们而无需寻找结束标记。

没有自定义元素会出现在浏览器的内部 void 元素列表中。

请记住,表明元素无效的重要因素是 标签名称。可选的/ 只是人们的语法糖和仍在尝试用XML 思考的语法高亮器。它对 HTML 解析器毫无意义。

【讨论】:

  • 好吧,当然浏览器对关闭标签的解释有点不同,但是如果在 void 元素的内部列表中有一个关闭标签(对于自定义元素),会有什么问题呢?您是说这是因为性能原因和 XML 标准化吗?。
  • 与性能无关。它更多地与缺乏 XML 标准化有关。浏览器无法识别 HTML 中的 XML 样式的自闭合标签。无效元素是预定义的元素。该列表无法更改(它不会向后兼容)。对 HTML 解析规则的更改也不起作用(也不向后兼容)。
猜你喜欢
  • 2014-12-29
  • 2021-12-30
  • 1970-01-01
  • 2021-10-15
  • 2016-10-05
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多