161

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

我认为如果标签没有关闭,它会是畸形的。

4

2 回答 2

197

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

您要问的是元素是否需要用结束标签关闭。答案是非 XHTML HTML(包括 HTML 序列化中的 HTML5),meta以及link元素不需要或不允许结束标记。然而,实际上,如果您使用它们,浏览器只会忽略它们的显式结束标签,以及/之前的 cargo-cult。HTML5 甚至正式允许in 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 ...>使用 no/
  • 如果您确实在实际应用 XHTML 解析的上下文中使用 XHTML,请遵循 XML 规则(并确保您了解它们)
  • 如果你的老板让你写<meta ... />,就写;它没有用,但不会造成任何伤害(除非您尝试验证例如针对 HTML 4.01 文档类型)。
于 2013-10-22T06:11:27.603 回答
37

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

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

在此处阅读更多信息:void-elements

于 2013-10-21T22:36:03.580 回答