38

<br>在 HTML5 中,用 关闭标签是否仍然合适<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?!
4

5 回答 5

43

来自HTML 的 W3C 规范

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

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

  • 开始标签由以下部分组成,完全按照以下顺序:

    • 一个<字符。
    • 元素的标签名称。
    • 可选地,一个或多个属性,每个属性前面必须有一个或多个空格字符。
    • 可选地,一个或多个空格字符。
    • 可选地,一个/字符,仅当元素是空元素时才可能存在。
    • 一个>字符。

由此看来,我们可以使用<br>or 或<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>or <br/>,只要确保你始终如一地使用它们。

编辑:正如 Brad 所指出的,<br />它也是有效的 XHTML,所以也许最好选择这种形式。

于 2012-05-15T10:40:42.373 回答
5

void恕我直言,我认为最好遵守 XHTML 标准,甚至关闭@Alex 指出的所谓元素。如果您的代码也是有效的 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 编码,那么客户端/浏览器应该支持严格的标准

于 2012-05-15T10:27:05.400 回答
3

更重要的是,您要保持一致,如果您使用的<!DOCTYPE html>是 void 或自闭合的 then 标记,如某些人所说,解析器将为您处理。

决定采用一种方法并坚持下去,我们决定使用 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' 语法来保持自己的理智!

于 2012-05-15T10:33:33.703 回答
1

在html 5 中对于void 元素/是有效且被忽略的,其中之一是,所以这完全取决于你,尽管我个人会摆脱这种习惯,因为它是一个遗留问题。(事实上​​它是一个空元素意味着正如你所说的那样;是荒谬的)br<br> </br>

于 2012-05-15T10:24:32.893 回答
0

从链接的文章中了解了自闭合标签后,我知道<br>,<br/>或者<br />所有在 HTML5 中都是有效的。

但是如果你写<br/><br />它们最终会<br>被浏览器转换成 HTML5。

此外,如果您编写<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>

它在浏览器中的外观:

在此处输入图像描述

于 2021-07-19T02:57:08.060 回答