我尝试过检查其他答案,但我仍然感到困惑——尤其是在看到W3schools HTML5参考之后。

我认为HTML4.01应该“允许”单个标记仅为<img>和<br>。然后XHTML与<img/>和<br/>一起出现(有人说旧版浏览器的空间很大)。

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

是<br>、<br/>还是<br/>?


当前回答

我只知道<br/>用白线表示休息,而<br>在某些情况下只是表示休息。当我设置IPN脚本(PHP)并发送邮件并查看收件箱时,我遇到了这种情况。不知道为什么,但我只使用<br/>和<br>两种语言,让邮件看起来很整洁

看看这里的邮件:http://snag.gy/cLxUa.jpg

文本的前两部分由<br/>分隔,因此空白行、底部的最后三行文本和最后一部分由<br>分隔,并仅提供新行。

其他回答

嗯。。。。。有人知道一个单一的供应商、用户代理或浏览器制造商曾经100%遵守W3C规范吗???因此,如果HTML5表示它支持所有三个break元素版本,那么你可以打赌供应商支持相同的甚至更糟糕的版本!

在这场辩论中,唯一重要的是尽可能坚持使用符合XML规范和HTML规范的编码。这意味着您应该使用break标记的正确XML版本,并鼓励您的所有团队都这样做:

<br />

代码中的img、a、hr和meta标记应采用相同的空格斜杠格式。为什么?因为:

它与旧的XHTML用户代理/浏览器向后兼容浏览器供应商无论如何都支持XML版本,因此HTML5规范没有意义。现在、过去和将来大多数用户代理的草率实现都会接受它。它允许您的标记与XML标准相比较,如果您需要返回到从标记创建XHTML/XML文档。对于所有WEB开发人员来说,继续使用遵循XML的坚实标记实践是“良好的编码实践”,包括所有小写的编码、引用的属性、转义的XML字符等。为什么?将来,如果您必须切换到XML数据,您将自动使用XML进行编码和思考。我们只能希望,在未来的万维网中,我们不再使用私有供应商实施的标准,而是使用可靠、可靠、经过验证的标记,这些标记可以更快地解析数据,更快地通过网络传输数据,并使我们未来的互联网成为使用XML的更标准化的媒介。旧的Netscape总是需要斜线前的“/”空格,否则会失败。谁在乎旧浏览器,对吧?但我仍然喜欢我的版本:)

此外,在这里的机器人和机器世界中,机器人没有HTML5为我们解决的相同的人机界面编码问题,他们会很乐意回到XML数据系统,并在转换为XML数据时更快地解析这样的UI网页。

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

3.2.2.2空隙元件术语void元素用于指定必须为空的元素。这些要求仅适用于HTML语法。在XHTML中,所有这些元素都被视为普通元素,但必须标记为空元素。这些元素完全禁止包含任何内容。在HTML中,这些元素只有开始标记。可以使用自动关闭标记语法。必须省略结束标记,因为元素由解析器自动关闭。HTML示例:HTML语法中的void元素。XHTML语法中不允许这样做。<小时>例子:使用HTML和XHTML兼容的自动关闭标记语法的void元素。<hr/>XHTML示例:使用带有显式结束标记的仅XHTML语法的void元素。这对于HTML语法中的void元素是不允许的。<hr></hr>

换句话说:

无效的HTML 5:<IMG></IMG>有效的HTML 5:<IMG>,<IMG/>

虽然HTML禁止某些结束标记,但xhtml要求它们:

xhtml:<img>无效有效的xhtml:<img></img>或<img/>

HTML中禁止使用结束标记的其他元素:

Element Valid HTML Valid xhtml
AREA <AREA> <AREA></AREA>
BASE <BASE> <BASE></BASE>
BASEFONT <BASEFONT> <BASEFONT></BASEFONT>
BR <BR> <BR></BR>
COL <COL> <COL></COL>
FRAME <FRAME> <FRAME></FRAME>
HR <HR> <HR></HR>
IMG <IMG> <IMG></IMG>
INPUT <INPUT> <INPUT></INPUT>
ISINDEX <ISINDEX> <ISINDEX></ISINDEX>
LINK <LINK> <LINK></LINK>
META <META> <META></META>
PARAM <PARAM> <PARAM></PARAM>

HTML禁止某些结束标记,而xhtml需要这些标记,这是xhtml的问题。如果您正在编写HTML,请遵循HTML规则。

与此同时,布罗沃斯放弃了执行这些标准,因为每个人都错了。这并不明显:

禁止</BR></P>是可选的需要</SPAN>

然后xhtml出现了,它的XML规则是每个元素都必须有一个结束标记,人们只是认为HTML是一样的。因此,这些标准放弃了,后来进行了修改,向现实伸出了双手。

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

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

在xhtml中,标记是如此严格。这意味着必须以开始标记开始,以结束标记结束。

我只知道<br/>用白线表示休息,而<br>在某些情况下只是表示休息。当我设置IPN脚本(PHP)并发送邮件并查看收件箱时,我遇到了这种情况。不知道为什么,但我只使用<br/>和<br>两种语言,让邮件看起来很整洁

看看这里的邮件:http://snag.gy/cLxUa.jpg

文本的前两部分由<br/>分隔,因此空白行、底部的最后三行文本和最后一部分由<br>分隔,并仅提供新行。