HTML5:是使用<br>、<br/> 还是 <br />?

2201
18个回答

11
"

<br>足以使用,但在XHTML中,<br />是更好的选择根据WHATWG的说法根据W3C的说法

引用HTML 5.2 W3C推荐,2017年12月14日第8.1.2.1节的话

"
开始标签必须具有以下格式:

  1. 属性之后,或者如果没有属性,则在标签名称之后可能会有一个或多个空格字符。(某些属性需要在后面跟随一个空格。请参见下面的§8.1.2.3属性。)

  2. 然后,如果元素是空元素之一,或者如果元素是外部元素,则可以有单个U+002F SOLIDUS字符(/)。该字符对空元素没有影响,但对外部元素则将起始标记标记为自闭合。

如果您使用Dreamweaver CS6,则会自动完成为<br />

要在W3C上验证您的HTML文件,请参见:http://validator.w3.org/


@Julix确实,为什么要踩这个回答呢?这是本页面上为数不多的正确答案之一。HTML5绝对符合XML标准,可选地,在XML语法中,单个标签必须用斜杠关闭。当这些简单的事实以黑白方式写在规范中时,为什么会被误解呢?(https://www.w3.org/TR/html5/syntax.html#start-tags) - Basil Bourque
2
@BasilBourque,我认为这可能是因为答案的第一句话过于简短/误导性:“<br>足以,但在XHTML中,<br />更受欢迎...”=>人们可能会推断,在XHTML中可以使用<br>,这是不正确的。 - Petr Bodnár

10

<br><br/>在渲染时会有不同。一些浏览器会将<br/>解释为<br></br>并插入两个换行符。


14
什么?你知道是哪些浏览器吗? - ehm
8
在测试 ie5 / ns4 时期的浏览器时发现了这个问题。如果我没记错的话,那是在ie的标准兼容模式下。但那是很久以前的事情了... - Samuel
5
对于严格的HTML4浏览器(实际上只是HTML4验证器), <br /> 的意思是 <br>&gt; - Konrad Borowski
1
我知道这是一个非常老的答案,但是现在误解 <br/> 的浏览器几乎已经绝迹了。它们在回答发布时已经非常罕见了。 - Kef Schecter

9

<br/> 是最合适的标签。在 Reactjs 中需要换行而不是 <br> 时,也可以使用这个标签。


7
在HTML中,大多数情况下,标签都是成对出现的。但是对于换行符,您不需要一对标签。因此,为了表示这一点,HTML使用<br/>格式。正确的格式是<br/>。请使用该格式。
在HTML中,<br>标签没有结束标签。 在XHTML中,<br>标签必须正确关闭,如下所示:<br /> 在XML中,每个标签都必须关闭。XHTML是XML的扩展,因此必须遵循所有XML规则才能获得有效的XHTML。因此,即使是空标签(没有子节点的节点)也应该被关闭,例如
。XML有一种称为自闭合标签的短形式,用于空节点。您可以将<br></br>写成<br />。因此,在XHTML中使用<br />
HTML在这方面非常宽容,没有这样的规定。因此,在HTML中,像<br> <hr> <meta>等空节点都不带正斜杠进行书写。
<br>
<hr>
<meta name="keywords" content="">
<link rel="canonical" href="http://www.google.com/">

XHTML

<br />
<hr />
<meta name="keywords" content="" />
<link rel="canonical" href="http://www.google.com/" />

并非所有标签都可以自闭合。例如,像<script src="jQuery.min.js" />这样的标签是不被XHTML DTD允许的。


6

嗯……有没有人知道有哪家供应商、用户代理或浏览器制造商曾经100%遵循W3C规范?所以如果HTML5说它支持所有三个断点元素版本,你可以打赌供应商也支持同样甚至更糟糕的版本!

在这场辩论中唯一重要的事情是始终使用符合XML规范和HTML规范的编码。这意味着您应该使用正确的XML版本的断点标记,并鼓励您的团队也这样做:

<br />

您的代码中应该适用于img、a、hr和meta标记相同的空间斜线格式。为什么呢?因为:
  1. 它与旧版XHTML用户代理/浏览器向后兼容。
  2. 浏览器供应商支持XML版本,因此HTML5规范无关紧要。
  3. 大多数用户代理今天、过去和未来的松散实现都会接受它。
  4. 如果您需要回到从标记创建XHTML/XML文档,它可以使您的标记与XML标准相媲美。
  5. 对于所有Web开发人员来说,保持使用遵循XML的可靠标记实践(包括所有小写编码、引用属性、转义XML字符等)是“良好编码习惯”。为什么?如果将来必须切换到XML数据,则自动进行XML编码和思考。
  6. 我们只能希望在未来的万维网中,我们远离私有厂商实现的标准,回到使用XML解析更快、在电线上传输数据更快、使我们未来的互联网成为更加标准化的介质的可靠、经过验证的标记的基础上。
  7. 旧版Netscape总是需要在斜杠之前加上“ /”空格,否则它会失败。谁关心旧浏览器呢?但这是我仍然喜欢的版本的另一个案例 :)
此外,在当前机器人和机器世界中,机器人没有与人类接口编码问题,HTML5为我们解决此类问题,因此它们将很愿意回到XML数据系统,并在转换为XML数据后更快地解析这些UI网页。

谁还会回到XML呢?当然不是机器人!XHTML已经死了,现在世界上使用HTML来构建内容结构,CSS用于繁琐的人类布局需求,JSON用于数据。 :) - Micah Murray
1
@Micah Murray 为什么要使用与其他标准兼容性较差的东西呢?为什么要让自己的生活变得更加困难呢?如果JSON像XHTML5/XML一样内置于HTML标记中,我会很乐意选择它。是的,我看到了一个反乌托邦的世界正在到来,网络将被机器人自动化。相信我...他们不会编写懒散的HTML :) - Stokely

5
我所知道的是,<br />会在断行后留下一条白线,而<br>只是在某些情况下换行。我在设置IPN脚本(PHP)并发送邮件以及检查收件箱时遇到了这种情况。不知道为什么,但我只有同时使用<br />和<br>才能使消息看起来整洁。
请查看这里的邮件:http://snag.gy/cLxUa.jpg 文本的前两个部分由<br />分隔,因此有空白行,底部的最后三行文本和最后一个部分由<br>分隔,只是换了一行。

-2

<br><br />在某些浏览器中呈现不同,因此选择其中之一并不会损害您的项目,但是请预期批量查找..替换会影响页面在某些浏览器中的呈现,这可能会给您带来额外的工作甚至尴尬,如果更改在您的测试浏览器中没有影响,但在客户首选浏览器中却出现问题。

我更喜欢使用<br>,因为自Erwise和Netscape Navigator(早期的Web浏览器)以来我一直在使用它,但是选择<br />也没有理由。它可能对某些预处理、可比性等有用。

即使您的选择归结为喜欢其中一个的外观,或者您(或您喜欢的HTML编辑器,例如Dreamweaver)希望您的代码符合xml规范,这取决于您。

一个快速的侧记:

不要与br混淆,但是除此之外,您还可以考虑在HTML中使用wbr标签:单词断点机会标签,它指定在文本中添加换行符是可以的位置。

如需进一步阅读,请阅读HTML5规范


5
请参阅HTML5规范,该规范明确说明:“然后,如果元素是其中一个空元素,或者如果元素是外部元素,则可能有一个 单个 "/"(U+002F)字符。” 强调部分已经添加。 <br> 显然是一个空元素,你可以在引用中的链接中看到。 - Kevin Ji

-3

没有结束标记的元素被称为空标签。在 HTML 4 和 HTML 5 中,结束标记不是必需的,可以被省略。

在 XHTML 中,标记非常严格。这意味着必须以起始标签开始并以结束标签结束。


1
不正确。在HTML5中,单标签与开始-结束标签对一样有效。请参阅HTML 5.2规范 - Basil Bourque

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接