4

可能重复:
可以使用未知的 HTML 标签吗?

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

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

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

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

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

4

2 回答 2

11

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

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

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

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

于 2012-10-10T19:47:54.430 回答
0

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

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

XHTML 还有一个有趣的特性——你可以定义和使用任何你想要的自定义标签,事实上这是它发展的两个主要原因之一

于 2012-10-10T19:49:07.367 回答