【问题标题】:Why browsers parses custom tags in HTML5? [duplicate]为什么浏览器会解析 HTML5 中的自定义标签? [复制]
【发布时间】:2012-10-01 09:16:10
【问题描述】:

可能重复:
Is it OK to use unknown HTML tags?

我已经在 Chrome 和 IE9 中测试了自定义标签 <oles-tag> ... </oles-tag>

我使用 HTML5 文档类型<!DOCTYPE html>

HTML5 不支持自定义标签。代码不会验证,但浏览器还是会解析它。我什至可以用 CSS 来定位它...

当自定义标签不是标准化的有效代码时,为什么浏览器会解析它?

为什么我不应该为了语义代码而使用自定义标签?

【问题讨论】:

标签: html tags semantics


【解决方案1】:

为什么浏览器解析自定义标签,而不是标准化和有效的代码?

使其向前兼容。试想一下,如果您无法在旧浏览器中设置<article> 元素的样式,因为在编写这些旧浏览器时<article> 并不存在。那会很可怕,不是吗? 怒视 IE

为什么我不应该为了语义代码而使用自定义标签?

因为没有其他人(程序)识别这些标签,因此它们不是语义的。像<article> 这样的元素被认为是语义的原因是因为它们具有已建立的用途。当您使用没有既定用途的自定义元素时,可能会以多种方式对其进行解释,从而导致程序之间的不一致。 瞪着<b><i>

【讨论】:

  • 我自己说得再好不过了。
【解决方案2】:

浏览器倾向于对标记宽容。这在历史上部分源于难以采用复杂的 SGML 语法。

在 90 年代后期出现了一种趋于严格的趋势,导致创建了 XHTML,每一个错误都会导致灾难性的失败。如果您更喜欢严格,似乎有一个版本的XHTML adapted for HTML5

XHTML 还有一个有趣的特性——你可以定义和使用任何你想要的自定义标签,事实上这是one of the two major reasons 用于它的开发。

【讨论】:

  • 好在 HTML5 中不再使用 SGML。
  • @BoltClock 是的,他们终于摆脱了它并保持宽容。恕我直言,这是一件好事
猜你喜欢
  • 2019-09-12
  • 1970-01-01
  • 2020-03-24
  • 2011-06-15
  • 2015-07-27
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多