我是不是需要在 <img> 或 <br> 标签等末尾添加“/”? [复制]

Posted

技术标签:

【中文标题】我是不是需要在 <img> 或 <br> 标签等末尾添加“/”? [复制]【英文标题】:Do I need a "/" at the end of an <img> or <br> tag, etc.? [duplicate]我是否需要在 <img> 或 <br> 标签等末尾添加“/”? [复制] 【发布时间】:2013-02-15 11:26:17 【问题描述】:

您是否需要在img 标记的末尾添加/?我在 W3schools.com 上看到 an example 没有 /

<img src="smiley.gif"   >

我知道没有必要自行关闭标签,至少在我的浏览器中是这样,但我应该这样做吗?

【问题讨论】:

@John - 有趣的事情:w3.org/html/wg/drafts/html/master/… 使用 img 标签而不用结束 / 你可能永远不应该自我关闭任何类型的标签,因为这太棘手了。 【参考方案1】:

/ 仅适用于 XHTML 和 XML。

如果您使用的是 HTML5 文档类型,那么无需以这种方式终止自闭合标签

这适用于&lt;img src="img.png" /&gt;&lt;br /&gt;&lt;hr /&gt; 等。

即只需使用&lt;img src="img.png"&gt;&lt;br&gt;&lt;hr&gt;

如果您需要一个空元素(如div),不要使用&lt;div /&gt;,而是使用&lt;div&gt;&lt;/div&gt;。这一点很重要,因为在 HTML5 中,the slash is ignored 和 &lt;div /&gt; 被解释为没有结束标记的 &lt;div&gt;

【讨论】:

对于 HTML5,您可以/ 结束 void elements 或省略它。两种形式都有效。但是,您不得为它们使用结束标记,例如 &lt;/img&gt;【参考方案2】:

如其他答案所述,仅 XHTML 标准需要它。但是,它还有其他用途。

Notepad++ 等一些代码编辑器允许您展开/折叠标签以加快查看速度。但是,如果您只是输入&lt;img&gt;,它应该如何知道不需要结束标记的标记与使用相同标记名称但需要(即在 XML 中)的标记之间的区别?如果您使用自定义标签,则尤其如此。

因此,使用/&gt; 明确告诉编辑器它是自动关闭的,允许它继续正常工作,而不是让它警告你标签不匹配。

【讨论】:

对于这个问题,***.com/questions/3558119/…,我不建议只是为了它而在 HTML5 doctype'd 页面上拍/:“在 HTML 5 中, 表示 。斜杠只是对 XML 上瘾的人的语法糖。语法是有效的,但它不是“自闭合标签”。区别很重要,因为(在 HTML 语法中至少) 在 HTML 5 中表示 ,而不是在 XHTML 中表示 。” 【参考方案3】:

我认为关闭 img 标签会更好。在我的脑海中,我能想到两个原因:

    如果你关心这类事情,它不会在 xhtml 下验证。

    任何试图以编程方式使用它的人/任何人都可能会感到困惑/遇到有关未关闭标签的问题。谁知道呢,这将来可能包括你。 :)

【讨论】:

HTML 不是 XHTML,所以我发现 #1 无关紧要。然而,#2 可能是不支持 HTML 的编辑器的问题。 (XHTML/HTML 的更大问题与空标签和 CDATA 相关,所以我放弃了这些其他问题:选择你的战斗) 我不会过度计划将来某个时候迁移到 XHTML。如果有人正在迁移,他们应该能够处理这种事情...... 嘿,现在有点有趣:我在这个网站上看到另一个问题,询问如何使用 actionscript 3 解析 html。打开的 img 标签(显然还有其他标签)正在引发问题。【参考方案4】:

在不使用/ 的情况下,该代码在 html 中是可以接受的,但在 XHTML 中是必需的。我更喜欢打开/,这样从 HTML 迁移到 XHTML

【讨论】:

对于这个问题,***.com/questions/3558119/…,我不建议只是为了它而在 HTML5 doctype'd 页面上打 /'s:“在 HTML 5 中, 表示 。斜杠只是对 XML 上瘾的人的语法糖。语法是有效的,但它不是“自闭合标签”。区别很重要,因为(至少在 HTML 语法中) 在 HTML 5 中表示 ,而不是在 XHTML 中表示 。” 我明白了。感谢@Danny Beckett 提供的信息【参考方案5】:

除了有效性问题,这仅取决于您验证的文档类型,斜杠仅在您的页面使用 XML 内容类型提供时才真正重要,例如application/xhtml+xml(很少使用,因为旧版本IE 窒息它)。

如果你这样做了,那么格式正确的错误处理是严厉的:任何错误(例如没有匹配的结束标签的开始标签,当使用&lt;img ... /&gt; 语法时,它可以是开始标签本身)阻止页面根本不显示,而是显示一条错误消息。

【讨论】:

当然,任何导致页面不显示的错误都是最好的选择。 Fail Fast 方法让世界变得更美好。

以上是关于我是不是需要在 <img> 或 <br> 标签等末尾添加“/”? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 <video> 或 <img> 上模拟 background-size:cover

从 <img> 标签获取 HTTP 状态代码或响应标头?

潘戈+开罗;是不是有处理文本中 <img> 样式标签的现有方法?

我可以只使用 <img> 标签 src 和 alt 来提供 WebP 文件而不是使用 <picture> 吗?

在 Firefox 或 chrome 中获取 <img> 二进制文件而不发出新请求 [重复]

RewriteRule a <img src=...> 或其他解决方案