协慌网

登录 贡献 社区

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

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

我认为 HTML 4.01 应该 “允许” 单个标签只是<img><br> 。然后 XHTML 出现了<img /><br />有人说这个空间适用于旧浏览器 )。

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

<!DOCTYPE HTML>

它是<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 参考草案中的这句话提供了答案:

但是,有些元素根本不包含任何内容。这些被称为空元素。在 HTML 中,上述语法不能用于 void 元素。对于此类元素,必须省略结束标记,因为解析器会自动关闭该元素。这些元素包括 br,hr,link 和 meta 等

HTML 示例:

<link type="text/css" rel="stylesheet" href="style.css">

在 XHTML 中,XML 语法要求规定必须使用显式结束标记(如上所述)或空元素语法使其显式化。这是通过在直角括号之前的开始标记的末尾插入斜杠来实现的。

例:

<link type="text/css" href="style.css"/>

作者可以选择在 HTML 语法中对 void 元素使用相同的语法。一些作者还选择在斜线之前包含空格,但这不是必需的。 (以这种方式使用空格是继承自 XHTML 1.0,附录 C 中的兼容性指南的约定。)

XML 不允许离开标签开放,所以它使<br>比其他两个更糟糕一点。其他两个大致相当于与旧版浏览器兼容的第二个首选项。实际上,出于兼容性的原因,之前/之前的空格是首选,但我认为只有具有属性的标签才有意义。所以我说无论是<br/><br /> ,无论你高兴美学。

总结一下:这三个都是有效的,第一个有点 “便携”。

编辑 :既然我们对规格都很疯狂,我认为根据dev.w3.org 的说法值得指出:

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

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