关闭HTML5中的标签

Ale*_*lex 34 html5

在HTML5中,关闭<br>标签仍然合适<br />吗?

这显然也适用于所有其他单个标签.我意识到这实际上并不会影响工作原理,但这里的最佳做法是什么?

someLines of txt <br>            // How you see a lot of people doing it
and then some <br />             // XHTML style! Should I still be doing this? 
ow im not done yet.. <br> </br>  // No one does this right? RIGHT?!
Run Code Online (Sandbox Code Playgroud)

Chr*_*ris 36

W3C HTML规范:

  • 以下是HTML中void元素的完整列表:

    • area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr
  • Void元素只有一个开始标记; 不得为void元素指定结束标记.

  • 开始标记由以下部分组成,完全按以下顺序排列:

    • 一个<角色.
    • 元素的标签名称.
    • 可选地,一个或多个属性,每个属性必须在一个或多个空格字符之后.
    • 可选地,一个或多个空格字符.
    • 可选地,一个/字符,仅当元素是void元素时才存在.
    • 一个>角色.

从这看起来我们可以使用<br>或者<br/>.然而,最终的标签</br>合法的,所以不要使用<br> </br>.

通过HTML验证服务运行以下内容表示同样多.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Testing void elements</title>
</head>
<body>
    some lines of txt <br>
    and then some more <br />
    I'm not done yet... <br> </br> <!-- This line generates an error -->
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

所以使用<br>或者<br/>,只是确保你一直使用它们.

编辑:正如Brad所说,<br />也是有效的XHTML,所以也许最好选择这个表格.

  • @Greg因为那时您可以使用更严格的解析器来告诉您标记是否有效.我无法计算我曾经被有效的,但由于错误的嵌套或类似的事情而在逻辑上错误的HTML标记所困扰,这是XML验证器会告诉我的.我的HTML5上一个项目使用的是HTML而不是XHTML,这将是我的最后一个.节省浪费时间 - 远远超过为自动关闭标签写一些额外的字符. (6认同)
  • 我同意@Konrad.这就是我在使用XHTML/XML时提到"*更好的工具支持*"的原因 (3认同)

Bra*_*rad 5

恕我直言我认为最好遵守XHTML标准,甚至关闭void@Alex所指出的所谓元素.如果您的代码也是有效的XML,那么您可以找到更好的工具支持来管理代码

<br>  // not valid XML without a closing tag

<br /> // valid XML and I prefer this

<br></br>  // valid XML but unnecessary clutter
Run Code Online (Sandbox Code Playgroud)

在任何情况下,如果您应该通过HTML验证服务运行您的代码.只要它有效,那么你只会处理编码风格,每个人都会对这个问题有个人倾向.

[编辑]

为了澄清我的答案,我建议使用这些XHTML标题中的任何一个......

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
Run Code Online (Sandbox Code Playgroud)

如果您正在编写HTML5,那么客户端/浏览器应该支持严格的标准

  • `<br> </ br>`是无效的HTML. (4认同)
  • 使用XHTML 1.0 Transitional doctype时,``</ br>`仍然会使用W3验证程序抛出错误.我收到消息"你可能忽略了关闭一个元素,或者你可能意味着"自我关闭"一个元素,也就是说,以"/>"而不是">"结束它." 我在这里错过了什么吗? (2认同)