56

你需要在标签/的末尾有一个吗?img我在 W3schools.com 上看到了一个/没有:

<img src="smiley.gif" alt="Smiley face" height="42" width="42">

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

4

5 回答 5

82

只有/XHTML 和 XML 才需要。

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

这适用于<img src="img.png" />,<br /><hr />

即只需使用<img src="img.png">,<br><hr>

如果您需要一个空元素(例如 a div),请不要使用<div />,而是使用<div></div>. 这很重要,因为在 HTML5 中,斜杠被忽略并被<div />解释为<div>没有结束标记。

于 2013-03-01T02:50:37.660 回答
12

如其他答案所述,仅 XHTML 标准需要它。然而,它还有另一个用途。

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

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

于 2013-03-01T02:53:38.650 回答
5

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

如果你这样做,那么格式正确的错误处理是严酷的:任何错误(例如没有匹配的结束标签的开始标签,在使用<img ... />语法时可能是开始标签本身)都会阻止页面显示,而是显示一条错误消息。

于 2013-03-01T07:36:16.153 回答
3

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

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

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

于 2013-03-01T02:54:13.413 回答
3

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

于 2013-03-01T02:54:36.857 回答