<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
其中哪一个是正确的?
<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
其中哪一个是正确的?
Answers:
<img src='stackoverflow.png' />
工作正常,并正确关闭标签。最好为alt
视障人士添加属性。
<img />
在[X] HTML / XML中有效是正确的,尽管如今很少使用XHTML,并且如果您的服务器正在提供页面,则text/html
您所要做的就是编写有效的HTML。将HTML应用程序迁移到XHTML的可能性几乎为零。
这是有效的HTML5,无需关闭它就可以了。这是所谓的void元素:
<img src='stackoverflow.png'>
以下是有效的XHTML标记。他们必须关闭。后一种在HTML 5中也可以:
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
<img src="about:logo" alt="about:logo">
在Firefox 76的about:logo
页面上看到标签感到困惑!虽然document.body.innerHTML
显示<img src=\"about:logo\" alt=\"about:logo\">
...很好的答案...
实际上,只有第一个在HTML5中 有效
<img src='stackoverflow.png'>
在XHTML中只有最后两个有效
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />
(尽管不是很严格要求,alt
但还应包括“通常”属性)。
就是说,您的HTML5页面可能会按预期显示,因为浏览器会按照您的意图重写或解释您的html。例如,这可能意味着它将标签从
<div />
变成<div></div>
。或者,也许它只是忽略了最后的斜线<img ... />
。
请参阅2016:将HTML5作为XHTML 5.0进行旧版验证。
请参阅:2011年讨论和此处的其他链接,但随着时间的流逝,某些位可能已更改
部分原因是因为浏览器非常努力地进行错误纠正。另外,由于自封闭标签和无效标签存在很多混淆。最终,规范发生了变化,或者并非一直很清晰,浏览器试图向后兼容。
因此,尽管您可能可以逃避这三个选项中的任何一个,但
只有第一个符合HTML5标准,并且可以保证通过HTML5验证程序。
合理的策略可能是:
以下是HTML5中不应关闭的标签列表:
<br> <hr> <input>
<img> <link> <source>
<col> <area> <base>
<meta> <embed> <param>
<track> <wbr> <keygen> (HTML 5.2 Draft removed)
<img src='stackoverflow.png' />
有效的XHTML和HTML 5的任何版本
Then, if the element is one of the void elements, or if the element is a foreign element, then there may be a single U+002F SOLIDUS character (/). This character has no effect on void elements, but on foreign elements it marks the start tag as self-closing.
是第12.1.2节中的void元素
Actually, only the first one is valid in HTML5
技术上不正确。第二个在HTML5中也有效。不需要,但有效。没有人争辩说这是必需的。仅根据规范,使用标签的自动关闭形式在所有当前XHTML和HTML形式中均有效。