是否需要关闭 HTML 中的 meta 和 link 标记?

我刚才在看某人的 HTML,他从来不关闭 HTML 头部的 meta 和 link 标签。代码工作得很好; 关闭这些标记是可选的吗?

我认为如果标记没有关闭,那么它将是畸形的。

80674 次浏览

这取决于 doctype。 HTML5不需要关闭。 XHTML 需要。

在 HTML5中,所谓的 void 元素(不能包含内容的元素)不需要关闭,因为它们是自动关闭的。但是如果你关闭它们,它仍然是有效的。.

点击这里阅读更多内容: 虚元素

标签必须始终由标记关闭符号 >关闭(如果我们忽略某些 SGML 规则,这些规则通常应用于非 XHTML HTML,但从未在浏览器中实现)。

你想问的是 元素是否需要被结束标签关闭。答案是非 XHTML HTML (包括 HTML 序列化中的 HTML5) ,对于 metalink元素不需要或不允许使用结束标记。然而,在实践中,浏览器只是忽略了它们的显式结束标记,以及 >之前的货物崇拜 /,如果您使用它们的话。HTML5甚至正式允许在 HTML 序列化中使用 /,从而使这种宽容性成为一种规则。

在 XHTML 中,XML 规则适用,因此每个元素无一例外都必须同时具有开始标记和结束标记,但是如果元素内容为空,则可以对这两个角色使用相同的标记,例如 <meta name="foo" content="bar"/><meta name="foo" content="bar"></meta>的缩写。如果在向符合标准的浏览器提供具有 XML (XHTML)内容类型的文档时违反了这一规定,则根本不会显示文档; 而是显示错误消息。

当使用具有 HTML 内容类型(Content-Type: text/html)的 XHTML 服务器时,因为 XHTML 文档几乎总是在 Web 上,所以浏览器实际上将应用非 XHTML HTML 规则。

总结一下:

  • 正常情况下,只使用 <meta ...>而不使用 /
  • 如果您确实是在实际应用 XHTML 解析的上下文中使用 XHTML,请遵循 XML 规则(并确保您了解它们)
  • 如果你的老板告诉你编写 <meta ... />,那就这么做; 它没有用处,但是不会造成任何伤害(除非你尝试验证,比如针对 HTML 4.01 doctype)。

Meta 标记通常用这个结束标记 > 代替/> 关闭 例如