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

Cap*_*ack 114 xhtml html5

在HTML5中,我们是否还需要像XHTML一样的结束斜杠?

<img src="some_image.png" />
Run Code Online (Sandbox Code Playgroud)

validator.w3.org如果放弃它就没有抱怨,甚至没有警告.但是一些在线文档似乎表明,对于标签,例如img,link,meta,br等,仍然需要结束斜杠.

Fre*_*cal 88

在HTML 5中,结束斜杠对于void元素是可选的img(我正在添加它,因为当前接受的答案只说:"不能为void元素指定结束标记",并且不解决void元素中的结束斜杠).

引自http://www.w3.org/TR/html5/syntax.html#start-tags(编号6):

然后,如果元素是void元素之一,或者如果元素是外来元素,则可能存在单个"/"(U + 002F)字符.此字符对void元素没有影响,但在外部元素上,它将开始标记标记为自动关闭.

  • @jj我引用了HTML5文档,所以我不明白为什么不认为它不是HTML5。事实上,在其他版本中,这样的削减是错误的。 (2认同)

Bri*_*ndy 80

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

Void元素区域,基地,br,col,命令,嵌入,hr,img,输入,keygen,链接,元,参数,源,轨道,wbr

...

Void元素只有一个开始标记; 不得为void元素指定结束标记.

W3C | WHATWG

据说这不是HTML5中的严格解析,所以它不会造成任何重大伤害.

  • 虽然问题是关于*结束斜杠*(例如`<br /`),但这个答案仅涉及*end标签*(例如`<BR> </ br>`). (22认同)
  • @FreeRadical是正确的.这个答案在技术上是不正确的,因为它将"结束斜杠"与"结束标记"混淆,因此误解了它引用的spec段落.这导致@ YannisDran的混乱.@minitech正确地陈述了什么是真的. (11认同)
  • 这是HTML,而不是XHTML,因此不需要.幸运的是,解析器仍然可以理解XHTML样式的结束斜杠,所以将它留在那里没有任何害处.如果出于某种原因需要,意味着更容易向后转换为XHTML. (5认同)
  • @FreeRadical:对于void元素,尾部斜杠是可选的,但end*标记*将无效. (4认同)

Kai*_*ack 14

void 元素的结束斜杠是可选的。

两者都是有效的 HTML5:

<img src="some_image.png" />
Run Code Online (Sandbox Code Playgroud)

<img src="some_image.png">
Run Code Online (Sandbox Code Playgroud)

无效元素是:

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

除了有趣之外:

void 元素不能有任何内容(因为没有结束标记,所以开始标记和结束标记之间不能放置任何内容)。

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


另请参阅此处的 SO 问题:
HTML5 中的自闭合标签(无效元素)


Ry-*_*Ry- 5

没有。即使在 HTML5 之前,HTML 也从未需要过它。如果您计划使用具有 HTML 功能的 XHTML,那么是的,这是必要的。