【问题标题】: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" alt="Smiley face" height="42" width="42">

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

【问题讨论】:

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

标签: html


【解决方案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; 明确告诉编辑器它是自动关闭的,允许它继续正常工作,而不是让它警告你标签不匹配。

【讨论】:

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

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

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

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

【讨论】:

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

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

【讨论】:

  • 对于这个问题,stackoverflow.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 方法让世界变得更美好。
猜你喜欢
相关资源
最近更新 更多
热门标签