我们还需要HTML5中的斜杠吗?


121

在HTML5中,是否仍需要像XHTML中那样的斜杠?

<img src="some_image.png" />

如果我删除了,validator.w3.org并没有抱怨,甚至没有警告。但是一些在线文档似乎表明,诸如img,link,meta,br等标签仍需要使用斜杠。


6
还是吗 HTML的任何版本都需要关闭所有标签吗?
加布

9
@Gabe XHTML 1.0严格需要它。我的意思是,网页通常可以正常加载,但被认为是无效的。
CaptSaltyJack 2011年

3
是的,但是X不仅仅因为X很酷而存在,HTML和XHTML之间还有相当大的差距。

1
@Capt:您是正确的,但是在您的文档类型指示XHTML时才是问题。
加布

Answers:


81

img 标签是Void Elements,因此它们不需要结束标签。

无效元素区域,基础,br,col,命令,嵌入,hr,img,输入,keygen,链接,meta,param,源,track,wbr

...

无效元素只有一个开始标签;不得为void元素指定结束标签。

W3C | 工作组

话虽这么说,它不是在HTML5中严格解析的,因此不会造成任何重大危害。


只是好奇,因为如果我输入'<img src =“ x”>'并按Enter键,我的编辑器(Komodo)会缩进。它期望在HTML5模式下使用斜杠,并且我想确保这是正确的行为。
CaptSaltyJack 2011年

5
这是HTML,而不是XHTML,因此不是必需的。幸运的是,解析器仍然了解XHTML样式的斜杠就可以了,因此将其保留在这里没有任何危害。意味着,无论出于何种原因,都可以更轻松地向后转换为XHTML。
Nightfirecat

4
@FreeRadical:尾部的斜杠对于void元素是可选的,但结束标记将无效。
Ry-

25
虽然问题是关于斜杠(例如<br/)的,但此答案仅涉及结束标记(例如<br></br>)。
自由基2014年

12
@FreeRadical是正确的。这个答案在技术上是不正确的,因为它an ending slash与混淆an end tag,从而误解了它引用的规范段落。这导致@YannisDran的混乱。@minitech正确说明了什么是正确的。
制造商史蒂夫(Steve)

94

在HTML 5中,斜杠在void元素上是可选的,例如img(我添加这个是因为当前接受的答案仅是:“不得为void元素指定结束标签”,并且不解决void元素中的斜杠)。

引用http://www.w3.org/TR/html5/syntax.html#start-tags(数字6):

然后,如果该元素是void元素之一,或者如果该元素是外来元素,则可能存在单个“ /”(U + 002F)字符。此字符对void元素无效,但对异物则将start标签标记为自闭合。


这不是HTML5。实际上,在早期版本的HTML中<br/>还是存在<img ... />错误。
jj

@jj我引用了HTML5文档,所以我不明白为什么不认为它不是HTML5。确实,在其他版本中,这样的削减是错误。
自由基

当然,我的意思是说“ 在HTML5中我们需要斜杠吗”是错误的问题。也许有一天我会写一些历史联系的完整答案。对于IIRC,Ian Hickson(HTML编辑器)允许在HTML5中使用斜杠是一个艰难的决定。
jj

2

不。HTML甚至在HTML5之前都从未要求过它。如果您打算将XHTML与HTML功能一起使用,则可以,这是必需的。


1
XHTML与HTML5不同,对吗?如果我的DOCTYPE只是“ html”,那么我不需要斜杠,对吗?
CaptSaltyJack 2011年

@CaptSaltyJack:正确。
Ry-

1
@CaptSaltyJack-HTML5涵盖了普通HTML和XHTML。XHTML要求关闭所有元素,但对于浏览器,doctype对情况不起作用。为了更全面的说明,请参见stackoverflow.com/questions/2662508/...
Alohci


1

void元素的斜杠是可选的。

两者都是有效的HTML5:

<img src="some_image.png" />

<img src="some_image.png">

无效元素是:

  • area
  • base
  • br
  • col
  • embed
  • hr
  • img 👍
  • input
  • link
  • meta
  • param
  • source
  • track
  • wbr

除了有趣:

无效元素不能包含任何内容(由于没有结束标签,因此不能在开始标签和结束标签之间放置任何内容)。

有关更多详细信息,请访问:https : //html.spec.whatwg.org/multipage/syntax.html#elements-2


另请参阅以下SO问题:
HTML5中的自动关闭标签(无效元素)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.