我试过检查other answers,但我仍然感到困惑 - 特别是在看到W3schools HTML 5 reference后。
我认为HTML 4.01应该“允许”单个标签只有<img>
和<br>
。然后XHTML伴随<img />
和<br />
(where someone said that the space is there for older browsers)。
现在我想知道在练习HTML 5时我应该如何格式化我的代码。
<!DOCTYPE HTML>
是<br>
,<br/>
还是<br />
?
答案 0 :(得分:1418)
只需<br>
即可。
其他形式与XHTML兼容;使得编写与XHTML相同的代码成为可能,并使其也可以用作HTML。生成HTML的某些系统可能基于XML生成器,因此无法仅输出裸<br>
标记;如果您正在使用这样的系统,可以使用<br/>
,如果您不需要这样做,则没有必要。
然而,实际上很少有人使用XHTML。您需要将您的内容作为application/xhtml+xml
提供,以便将其解释为XHTML,并且在旧版本的IE中无效 - 这也意味着您所做的任何小错误都会阻止您的网页在浏览器中显示那支持XHTML。因此,大多数在Web上看起来像XHTML的内容实际上都是作为HTML提供和解释的。有关更多信息,请参阅Serving XHTML as text/html Considered Harmful。
答案 1 :(得分:208)
我认为HTML 5 Reference Draft的引用提供了答案:
但有些元素是被禁止的 从中包含任何内容。 这些被称为空元素。在 HTML,上面的语法不能使用 对于虚空元素。对于这些元素, 必须省略结束标记,因为 元素自动关闭 解析器。这些要素包括, 其中包括br,hr,link和meta
HTML示例:
<link type="text/css" rel="stylesheet" href="style.css">
在XHTML中,XML语法 要求必须这样做 明确使用显式 结束标记,如上所述,或空 元素语法。这是通过 在结束处插入斜杠 在右边之前开始标记 角支架。
示例:
<link type="text/css" href="style.css"/>
作者可以选择使用 对于void元素的相同语法 HTML语法也是如此。一些作者 也选择包括空格 在斜线之前,但事实并非如此 必要。 (在其中使用空格 时尚是一种继承自的传统 XHTML中的兼容性指南 1.0,附录C。)
答案 2 :(得分:132)
XML不允许打开标签,因此它使<br>
比其他两个更差。其他两个大致等同于第二个(<br/>
)首选,以便与旧浏览器兼容。实际上,为了兼容性,/
之前的空格是首选,但我认为只有具有属性的标签才有意义。所以我要说<br/>
或<br />
,无论哪个都符合你的美学。
总结一下:这三个都是有效的,第一个(<br>
)有点“便携”。
修改:既然我们对规格感到疯狂,我认为值得指出的是dev.w3.org:
开始标记包含以下内容 零件,完全按以下顺序:
- A“&lt;”字符。
- 元素的标记名称。
- 可选地,一个或多个属性,每个属性必须是 前面有一个或多个空格 字符。
- (可选)一个或多个空格字符。
- 可选地,一个“/”字符,只有在出现时才会出现 element是一个void元素。
- A“&gt;”字符。
醇>
答案 3 :(得分:101)
HTML(最多HTML 4):使用<br>
首选 HTML 5 :<br>
,但<br/>
和<br />
也可以接受
在 XHTML 中:<br />
是首选。也可以使用<br/>
或<br></br>
注意:
<br></br>
在HTML 5中无效,它将被视为两个换行符。<br/>
上失败,但不会<br />
参考:
答案 4 :(得分:54)
根据spec,HTML 5的预期格式为<br>
,但允许使用结束斜杠。
答案 5 :(得分:20)
XML要求所有标记都有相应的结束标记。因此,对于没有内部内容的标签,有一种特殊的简写语法。
HTML5不是XML,所以它不应该提出这样的要求。 HTML 4.01也不是。
例如,在HTML5 specs中,br
标记的所有示例都使用<br>
语法,而不是<br/>
。
UPD 实际上,<br/>
是permitted in HTML5。 9.1.2.1,7。
答案 6 :(得分:16)
我建议使用&lt; br /&gt;原因如下:
1)突出显示不同颜色的XML语法的文本和XML编辑器将使用&lt; br /&gt;正确突出显示。但如果您使用&lt; br&gt;
,情况并非总是如此2)&lt; br /&gt;与XHTML向后兼容,格式良好的HTML(即:XHTML)通常更容易验证错误和调试
3)一些旧的解析器和一些编码规范需要在结束斜杠之前的空格(即:&lt; br /&gt;而不是&lt; br /&gt;),例如WordPress插件编码规范:http://make.wordpress.org/core/handbook/coding-standards/html/
我的经验,我从未遇到过使用&lt; br /&gt;的情况。但是,有很多情况下&lt; br /&gt;或者特别是&lt; br&gt;可能在旧版浏览器和工具中存在问题。
答案 7 :(得分:13)
如果您对可比性(不兼容性,但可比性)感兴趣,那么我会坚持使用<br />
。
否则,<br>
没问题。
答案 8 :(得分:12)
HTML5中可接受<br>
和<br />
,但本着HTML的精神,应使用<br>
。 HTML5允许关闭斜杠,以便与以前HTML 4.01和XHTML 1.0的文档更兼容,从而可以更轻松地迁移到HTML5。当然,<br/>
也是可以接受的,但要与某些旧浏览器兼容,在结束斜杠(/
)之前应该有一个空格。
答案 9 :(得分:11)
<br>
和<br/>
都可以,但我更喜欢<br/>
,因为它更符合逻辑。只要有开始标记,期望结束标记是合乎逻辑的。因此,如果在没有结束标记的情况下不使用开始标记,则代码会更容易阅读。
所有浏览器(除了可能是一些非常旧的浏览器)都将显示两者完全相同。但是,<br>
不是xHTML complient。
答案 10 :(得分:11)
如果您要在常规网站上输出HTML,则可以使用<br>
或 <br/>
,这两种方式在您将HTML5作为text / html提供时都有效。
如果您将HTML5作为XHTML提供(即内容类型application / xhtml + xml,带有XML声明),那么您必须使用自闭项标记,如下所示:<br/>
。
如果你不这样做,某些浏览器可能会拒绝渲染你的页面(特别是Firefox 非常严格关于只渲染有效的xhtml + xml页面)。
如前所述1. <br/>
对HTML5也有效,后者恰好以XML格式生成,但在没有 XML声明的情况下作为常规text / html (例如来自XSL)生成网页或类似内容的转换。
清除混淆:在HTML5中不需要在斜杠之前放置一个空格,并且对页面的呈现方式没有任何影响(如果有人能引用一个例子我会收回它,但我不知道我相信这是真的 - 但IE肯定会在所有形式的<br>
标签上做很多其他奇怪的事情。
http://validator.w3.org的优秀验证器对于检查有效内容非常有用(尽管我不确定您是否可以依赖它来检查内容类型)。
答案 11 :(得分:7)
<br>
和<br/>
的呈现方式不同。有些浏览器将<br/>
解释为<br></br>
并插入两个换行符
答案 12 :(得分:6)
答案 13 :(得分:5)
在验证中,对于这个问题,它实际上取决于您试图通过!DOCTYPE
验证的内容。
我个人最喜欢的是4.01 Trans
我只使用<br/>
,它会清除验证过程中可能出现的警告和错误
严格是一个更复杂的野兽,它是"SHORTTAGS"
,而且实际上只想要<br></br>
在HTML5
或&#34; LAX&#34;在代码世界中,确实没有正确答案,因为它detects every example you put up
正确......
最后,我认为所有重要事项is what validation YOU PREFER
或the person that you are working for prefers
... lackadaisical
代码严格html5
@interface VideoSource : NSObject
- (void)setFilter:(void(^)(void *))filter;
@end
我们看到一些非常懒散的代码
答案 14 :(得分:4)
恕我直言,最好使用常规符号(<br />
)而不是原谅符号(<br>
),原因如下:
在您的HTML中,可能有一些SVG和SVG仅支持常规表示法(例如<rect />
)。
React和NativeScript等框架不是使用XML表示法的情况。
您的标记代码将更容易解析。
常规符号更容易阅读和理解,甚至深夜。
<br>
和<br />
都是有效的HTML代码。
如果您使用完整的文本编辑器,请将其配置为使用常规表示法(Emmet称为XHTML)。
例如,在Visual Studio Code中,您只需将以下行添加到您的设置中:
"emmet.syntaxProfiles": {"html": "xhtml"}
答案 15 :(得分:3)
在HTML5中,不再需要斜杠:
<br>
,<hr>
答案 16 :(得分:3)
在HTML <br>
和XHTML <br/>
中。
我建议您使用<br/>
。
答案 17 :(得分:3)
我所知道的是<br />
给出了一条白线的中断,而<br>
只是在某些情况下给出了休息。当我设置IPN脚本(PHP)并发送邮件并检查收件箱时,这发生在我身上。不知道为什么,但我只是使用<br /> and <br>
在这里查看邮件:http://snag.gy/cLxUa.jpg
文本的前两部分由<br />
分隔,因此空白行,底部和最后一部分的最后三行文本由<br>
分隔,并且只给出新行。
答案 18 :(得分:2)
Ummm .....有没有人知道曾经遵循W3C规范100%的单一供应商,用户代理或浏览器制造商?因此,如果HTML5表示它支持所有三个break元素版本,那么你可以打赌供应商支持相同甚至更加笨拙的版本!
本次辩论中唯一重要的事情是始终如一地使用编码,这种编码在可能的情况下也会遵循XML规范以及HTML规范。这意味着您应该使用break标记的正确XML版本,并鼓励您的所有团队也这样做:
<br />
相同的空格 - 斜杠格式应该适用于代码中的img,a,hr和meta标记。为什么?这是因为:
此外,在机器人和机器世界中,机器人不具备HTML5为我们解决的相同的人机界面编码问题,他们很乐意回到XML数据系统并解析这样的问题。转换为XML数据时,UI网页的速度要快得多。
答案 19 :(得分:2)
HTML中的大部分案例都是成对的。但是对于换行符,您不需要一对标签。因此,为了表明这一点,HTML使用<br/>
格式。 <br/>
是正确的。使用该格式。
<br>
标记在HTML中没有结束标记
在XHTML中,<br>
标记必须正确关闭,如下所示:<br />
在XML中,必须关闭每个标记。 XHTML是XML的扩展,因此必须遵循XML的所有规则才能使用有效的XHTML。因此,即使是空的标签(没有子节点的节点)也应该关闭。 XML有一个简短的形式,称为空节点的自闭标签。你可以写<br></br> as <br />
。因此,在XHTML中使用了<br />
。
HTML在这方面非常宽松,并且没有这样的规则。因此在HTML中,空<br> <hr> <meta>
等空节点的编写没有正斜杠。
<强> HTML 强>
<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/" />
并非所有标签都可以自动关闭。例如,XHTML DTD不允许使用<script src="jQuery.min.js" />
之类的标记。
答案 20 :(得分:2)
<br>
效果很好。像XHTML这样的更严格的版本要求您添加不包含DOCTYPE
make <br>
非结束标记的结束版和非常旧的HTML版本,例如<br></br>
。
总结:<br>
没问题。其他的也很好。
答案 21 :(得分:2)
正如许多其他人所述,<br>
和<br/>
都可以接受。
我认为权衡是<br/>
的更好的可读性和向后兼容性,而不是使用<br>
向最终用户发送少一个字符。
由于Google使用<br>
,我也会这样做。
(当然请记住,他们可能会为我<br>
提供服务,因为我使用的是他们知道支持的Chrome。在IE中,他们可能仍在提供服务<br/>
)
答案 22 :(得分:1)
在HTML5中可以正常工作。 HTML5比XHTML留出更多余地
答案 23 :(得分:1)
如果您使用的是HTML5,那么使用<br>
是正确的方法:)
答案 24 :(得分:1)
<br/>
是最合适的。此标记符号也可以在需要换行而不是<br>
答案 25 :(得分:0)
它只是<br>
,因为它没有结束标记-在Google上搜索以下问题:“ <br>
是否有结束标记吗?”
答案 26 :(得分:0)
只需使用<br>
。 请勿使用 <br></br>
。 <br>
是一个特殊的标签,与大多数标签不同,它不需要关闭。
答案 27 :(得分:0)
答案 28 :(得分:-2)
没有结束标记的元素称为空标记。在html 4和html 5中,不需要结束标记,可以省略。
在xhtml中,标签非常严格。这意味着必须从开始标记开始,以结束标记结束。
答案 29 :(得分:-3)
<br>
和<br />
在某些浏览器中的呈现方式不同,因此选择其中一种不会损害您的项目,但确实需要批量find..replace来影响页面呈现某些浏览器可能导致额外的工作,甚至是尴尬,如果更改在您的测试浏览器中没有任何影响,但在客户的首选浏览器中打破它。
我更喜欢<br>
,因为它是自Erwise和Netscape Navigator(早期网络浏览器)以来我使用的,但没有理由不选择<br />
。它可能对某些预处理,可比性等有用。
即使您的选择归结为偏好一个优先于另一个,或者您(或您喜欢的HTML编辑器,例如Dreamweaver)可能希望您的代码符合xml。这取决于你。
快速说明:
不要与br
混淆,但此外您还可以考虑在HTML中使用wbr
标记:分词机会标记,指定文本中可以添加的位置换行。
如需进一步阅读,请阅读HTML5 spec。