我们仍然需要在HTML5中结束斜线吗?
在HTML5中,我们还需要像XHTML一样的结束斜线吗?
<img src="some_image.png" />
validator.w3.org没有抱怨,如果我放弃它,甚至没有警告。 但是一些在线文档似乎表明,对于img,link,meta,br等标签仍然需要结束斜线。
img
标签是无效元素,所以他们不需要结束标签。
Void elements area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr
…
空元素只有一个开始标签; 不能为空元素指定结束标记。
W3C | WHATWG
这就是说,它不是严格的HTML5parsing,所以不会有任何重大的伤害。
在HTML 5中,closures斜杠在void元素上是可选的 ,例如img
(我添加了这个,因为当前接受的答案只是说:“不能为void元素指定结束标记”,并且不会在void元素中处理结束斜线)。
引用http://www.w3.org/TR/html5/syntax.html#start-tags (编号6):
那么,如果元素是void元素之一,或者元素是外部元素,那么可能会有一个“/”(U + 002F)字符。 这个字符对void元素没有影响,但在外部元素上,它将开始标记标记为自动closures。
不。 HTML从来不需要它,甚至在HTML5之前。 如果您打算使用HTMLfunction的XHTML,那么是的,这是必要的。
根据开始标签,他们是可选的。
FROM W3C:
空白元素:区域,基地,br,col,embed,hr,img,input,keygen,链接,meta,param,source,track,wbr
“空元素只有一个开始标记,结束标记不能为空元素指定”。
所有标签必须closures(通过自行closures或单独的closures操作)。 有些在HTML4中自行closures(如<img>
标签),而另一些(如<p>
标签)需要单独的结束标签。 记住,所有标签必须closures或浏览器(如果严格遵守)将有错误。 这意味着,即使在开始和结束之间没有内容的标签,也必须以某种方式closures。 下面我将介绍<img>
标签,因为在打开和closures之间没有任何内容。
在HTML4中它是自闭的。 这并不意味着它不closures,因为记住所有的标签必须closures。 它只是通过它的存在而自我封闭。 所以在HTML4中, <img>
标签就是: <img>
在XHTML中它不是自动closures的。 这意味着您必须提供一个单独的结束标签,如下所示: <img></img>
然后在HTML5中,有人终于变得聪明起来,并决定closures一个标签,该标签在打开和closures之间没有内容,这是一个非常简单的任务。 只使用一个标记,但在大于号之前有一个斜线,如下所示: <img />
这也完全向后兼容HTML4。 如果您不使用XHTML(需要单独的结束标记),并且不确定您的代码是否使用HTML4或HTML5标准。 你最好的select是总是有一个结束斜杠,大于开始和结束之间没有内容的标签。 这样,它将始终在每个浏览器中正确显示。
下面是一个正确编写的HTML代码示例,它与所有浏览器都具有高度的兼容性。
<!DOCTYPE html> <html> <head> <title>test website</title> </head> <body> <p>This is a test.</p> <img src="testpic.jpg" /> </body> </html>