关闭HTML5中的标签

时间:2012-05-15 10:10:25

标签: 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?!

5 个答案:

答案 0 :(得分:34)

来自W3C specification for HTML

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

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

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

    • 一个<字符。
    • 元素的标记名称。
    • (可选)一个或多个属性,每个属性必须以一个或多个空格字符开头。
    • (可选)一个或多个空格字符。
    • (可选)/字符,仅当元素为void元素时才可以出现。
    • 一个>字符。

从这看起来我们可以使用<br><br/>。但是,结束标记</br> 有效,因此请勿使用<br> </br>

通过HTML Validation Service运行以下内容表明了这一点。

<!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>

因此请使用<br><br/>,只需确保始终如一地使用它们。

修改:正如Brad所说,<br />也是有效的XHTML,所以也许最好选择此表单。

答案 1 :(得分:5)

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

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

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

<br></br>  // valid XML but unnecessary clutter

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

<强> [编辑]

为了澄清我的回答,我建议使用这些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"> 

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

答案 2 :(得分:2)

更为重要的是,如果你使用<!DOCTYPE html>那么无效或自我关闭的标签就像你说的那样,解析器会为你处理。

确定一种方法并坚持下去,我们决定采用xhtml风格的语法,但我们并没有实际使用xhtml。即使解析器比其他需要能够理解你的标记的人更宽容,所以如果你有一个标准并且每个人都购买了它,那么每个人都在用相同的赞美诗唱歌。

为什么我们需要约定?因为以下所有内容都有效:

<META CHARSET=UTF-8>        
<META CHARSET=UTF-8 />      
<META CHARSET="UTF-8">      
<META CHARSET="UTF-8" />        
<meta charset=utf-8>        
<meta charset=utf-8 />      
<meta charset="utf-8">      
<meta charset="utf-8" />        
<MeTa CHARset=utF-8>

要考虑的另一件事是html5属性,我们决定在一组属性的末尾使用布尔样式属性,并且总是在其他属性周围使用引号,例如:

<video id=“vid1” data-someting="my_val" controls>

这样我们就不必使用冗余语法(在我看来):

<video id=“vid1” controls="controls">

仅仅因为html5让我们遗漏了结束标记,即使是</p>标记,它也没有做到正确。

我希望你决定使用xhtml'sytle'语法来实现自己的理智!

答案 3 :(得分:1)

/有效&amp; html 5中void elements忽略了br,其中<br> </br>是一个,所以它完全取决于你,尽管我个人认为这是一种传统的习惯。 (事实上​​,它是一个虚空元素意味着正如你所说的那样; {{1}}是荒谬的)

答案 4 :(得分:0)

从链接的文章中了解 self-closing tags 后,我了解到 <br><br/><br /> 在 HTML5 中都是有效的。

但是,如果您编写 <br/><br />,那么它们最终会被浏览器转换为 HTML5 中的 <br>

此外,如果您编写 <br></br>,它们的浏览器不会生成一些错误,但会将其读取为 2 个 <br> 标签。

someLines of txt <br>            // This is completly valid and recommended
and then some <br />             // XHTML style! should be written like this in XHTML but in HTML5 you can just write <br>
ow im not done yet.. <br> </br>  // Even if you do this then no error will generate. Instead browser will read it as 2 <br> tags

方法如下:

<p>This is paragraph with &lt;br&gt;<br> and &lt;br/&gt;<br/> and then &lt;br /&gt;<br />.</p>
<p>closing br is wrong way <br></br> but browser read it as 2 br.</p>

它在浏览器中的外观:

enter image description here