您需要关闭 HTML 中的 meta 和 link 标签吗?

新手上路,请多包涵

我只是在阅读某人的 HTML,他从未在 HTML head 部分关闭 meta 和 link 标签。代码运行良好;关闭这些标签是可选的吗?

如果标签没有关闭,我认为它会格式错误。

原文由 bcollins 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 603
2 个回答

标签 必须始终由标签关闭符号 > 关闭(如果我们忽略某些名义上适用于非 XHTML HTML 但从未在浏览器中实现的 SGML 规则)。

你的意思是问 元素 是否需要用结束标签关闭。答案是非 XHTML HTML(包括 HTML 序列化中的 HTML5), metalink 元素不需要或不允许结束标记。然而,实际上,浏览器只是忽略它们的显式结束标记,以及 cargo-cult / 之前 > ,如果你使用它们。 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 文档类型进行验证)。

原文由 Jukka K. Korpela 发布,翻译遵循 CC BY-SA 4.0 许可协议

这取决于文档类型。 HTML5 不需要关闭。 XHTML 可以。

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

在这里阅读更多相关信息: void-elements

原文由 Sebsemillia 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题