【发布时间】:2013-10-30 14:59:11
【问题描述】:
我只是在阅读某人的 HTML,他从未在 HTML 头部部分关闭元和链接标签。代码运行良好;关闭这些标签是可选的吗?
我认为如果不关闭标签会导致格式错误。
【问题讨论】:
-
@Inigo 请不要创建不必要的标签。 html 已经包含了对语法的关注。
我只是在阅读某人的 HTML,他从未在 HTML 头部部分关闭元和链接标签。代码运行良好;关闭这些标签是可选的吗?
我认为如果不关闭标签会导致格式错误。
【问题讨论】:
标签必须始终由标签关闭符号 > 关闭(如果我们忽略某些名义上适用于非 XHTML HTML 但从未在浏览器中实现的 SGML 规则)。
你要问的是元素是否需要用结束标签来关闭。答案是非 XHTML HTML(包括 HTML 序列化中的 HTML5),meta 和 link 元素不需要或不允许结束标记。然而,在实践中,浏览器只是忽略它们的显式结束标签,以及 > 之前的货物崇拜 /,如果你使用它们的话。 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 ...>,不使用/
<meta ... />,照做;它没用,但不会造成任何伤害(除非您尝试验证,例如针对 HTML 4.01 文档类型)。【讨论】:
/ before >”)。只是想我会澄清一下,以免让互联网变得更加混乱。 </pedant_alert> :)
这取决于文档类型。 HTML5 不需要关闭。 XHTML 可以。
在 HTML5 中,所谓的 void 元素(不能有内容的元素)不需要关闭,因为它们是自关闭的。但是如果你关闭它们它仍然有效..
在此处了解更多信息:void-elements
【讨论】: