HTML 5:是 <br>,<br/> 还是 <br />?

我尝试检查其他答案 ,但仍然感到困惑 - 特别是在看到W3schools HTML 5 参考之后

我认为 HTML 4.01 应该 “允许” 单个标签为<img><br> 。然后 XHTML 与<img /><br />有人说那里是旧浏览器的空间 )。

现在,我想知道练习 HTML 5 时应该如何格式化代码。

<br><br/>还是<br />

答案

只需<br>就足够了。

还有其他形式是为了与 XHTML 兼容。使编写与 XHTML 相同的代码成为可能,并使它也可以用作 HTML。某些生成 HTML 的系统可能基于 XML 生成器,因此不能仅输出裸<br>标记。如果您使用的是这样的系统,则可以使用<br/> ,如果您不需要这样做,则没有必要。

但是,实际上很少有人使用 XHTML。您需要将内容作为application/xhtml+xml进行提供,才能将其解释为 XHTML,这在旧版本的 IE 中将不起作用 - 这也意味着您犯的任何小错误都将阻止您的页面在浏览器中显示确实支持 XHTML。因此,Web 上看起来像 XHTML 的大多数东西实际上都是作为 HTML 提供和解释的。有关更多信息,请参见将XHTML 作为 text / html 认为有害

我认为HTML 5 参考草案中的这句话提供了答案:

3.2.2.2 空隙元素

术语void elements用于表示必须为空的元素。这些要求仅适用于 HTML 语法。在 XHTML 中,所有此类元素都被视为普通元素,但必须将其标记为空元素。

禁止这些元素完全包含任何内容。在 HTML 中,这些元素仅具有开始标记 。可以使用自动关闭标签语法。必须省略end 标签,因为解析器会自动关闭元素。

HTML 示例:
HTML 语法中的 void 元素。 XHTML 语法不允许这样做。

<hr>

例:
使用 HTML 和 XHTML 兼容的自动关闭标签语法的 void 元素。

<hr/>

XHTML 示例:
使用仅 XHTML 语法和显式结束标记的 void 元素。 HTML 语法中的 void 元素不允许这样做。

<hr></hr>

XML 不允许打开标签,因此它使<br>比其他两个更糟。其他两个与用于与旧版浏览器兼容的第二个( <br/> )大致相同。实际上,出于兼容性考虑,首选/之前的空格,但我认为仅对具有属性的标签有意义。因此,无论您喜欢哪种美学,我都会说<br/><br />

总结一下:所有这三个都是有效的,第一个( <br> )少了 “可移植” 的含义。

编辑 :现在,我们都对规格感到疯狂,我认为值得指出的是根据dev.w3.org

开始标签由以下部分组成,并按照以下顺序排列:

  1. 一个 “<” 字符。
  2. 元素的标签名称。
  3. 可选地,一个或多个属性,每个属性之前必须有一个或多个空格字符。
  4. (可选)一个或多个空格字符。
  5. 可选地,“/” 字符,仅当元素为 void 元素时才存在。
  6. 一个 “>” 字符。

HTML 中(最多 HTML 4) :使用<br>

HTML 5 中<br>是首选,但<br/><br />也可以接受

XHTML 中<br />是首选。也可以使用<br/><br></br>

笔记:

  • <br></br>在 HTML 5 中无效,将其视为两个换行符。
  • XHTML 区分大小写,HTML 不区分大小写。
  • 为了向后兼容,某些旧的浏览器会将 XHTML 解析为 HTML,并在<br/>失败,但在<br />上失败

参考:

根据规范 ,HTML 5 的预期格式为<br> ,但允许使用斜杠。

由于以下原因,我建议使用<br />

1)用<br />突出显示以不同颜色突出显示 XML 语法的文本和 XML 编辑器,但如果使用<br>则并非总是如此

2) <br />与 XHTML 向后兼容,格式正确的 HTML(即 XHTML)通常更易于验证错误和调试

3)一些旧的解析器和一些编码规范规定的结束斜杠前的空间(即: <br />代替<br/> ),如 WordPress 插件编码规格: http://make.wordpress.org/core / 手册 / coding-standards / html /

根据我的经验,我从来没有遇到过使用<br />有问题的情况,但是,在许多情况下,在较旧的浏览器和工具中<br/>或尤其是<br>可能会出现问题。

XML 要求所有标签都具有相应的结束标签。因此,对于没有内部内容的标记,有一种特殊的速记语法。

HTML5 不是 XML,因此不应提出此类要求。 HTML 4.01 也不是。

例如,在HTML5 规范中 ,所有带有br标签的示例都使用<br>语法,而不是<br/>

UPD实际上, HTML5 中允许 <br/> 。 9.1.2.1,7。

如果您对可比性感兴趣(不是兼容性,而是可比性),那么我会坚持使用<br />

否则, <br>可以。

<br><br />在 HTML5 中都是可以接受的,但是从 HTML 的精神来看,应该使用<br> 。 HTML5 允许使用斜杠,以便与以前的 HTML 4.01 和 XHTML 1.0 的文档更加兼容,从而更容易迁移到 HTML5。当然, <br/>也可以接受,但是为了与某些旧版本的浏览器兼容,在斜杠( / )之前应留一个空格。

  1. 如果您要在常规网站上输出 HTML,则可以使用<br> <br/> ,只要您将 HTML5 作为 text / html 进行提供,则两者都有效。

  2. 如果您将 HTML5 用作 XHTML(即内容类型 application / xhtml + xml,带有 XML 声明),则必须使用如下所示的自闭标签: <br/>

    如果不这样做,则某些浏览器可能会拒绝显示页面(特别是 Firefox 对于仅显示有效的 xhtml + xml 页面非常严格)。

    如 1 中所述。 <br/>对于 HTML5(碰巧以 XML 生成,但用作没有 XML 声明的常规文本 / html)(例如,从生成网页的 XSL Transform 或类似的东西)也有效。

为了消除混乱:HTML5 中不需要在斜杠前放置空格,并且对页面的呈现方式没有任何影响(如果有人可以举一个例子,我会撤消它,但是我不相信它是是的 - 但是 IE 当然对于所有形式的<br>标记都会做很多其他奇怪的事情)。

http://validator.w3.org 上的出色验证器对于检查有效内容确实很有帮助(尽管我不确定您是否可以依靠它来检查内容类型)。