我尝试检查其他答案,但仍然感到困惑-特别是在看到W3schools HTML 5参考之后。
我认为HTML 4.01应该“允许”单个标签为<img>
and <br>
。然后XHTML与<img />
and 一起出现了<br />
(有人说那里是旧浏览器的空间)。
现在,我想知道练习HTML 5时应该如何格式化代码。
是不是<br>
,<br/>
还是<br />
?
我尝试检查其他答案,但仍然感到困惑-特别是在看到W3schools HTML 5参考之后。
我认为HTML 4.01应该“允许”单个标签为<img>
and <br>
。然后XHTML与<img />
and 一起出现了<br />
(有人说那里是旧浏览器的空间)。
现在,我想知道练习HTML 5时应该如何格式化代码。
是不是<br>
,<br/>
还是<br />
?
Answers:
简单地<br>
就足够了。
还有其他形式是为了与XHTML兼容。使编写与XHTML相同的代码成为可能,并使它也可以用作HTML。某些生成HTML的系统可能基于XML生成器,因此不能仅输出裸<br>
标签。如果您使用的是这样的系统,则可以使用<br/>
,如果不需要,就没有必要。
但是,实际上很少有人使用XHTML。您需要将内容application/xhtml+xml
解释为XHTML,并且在IE的旧版本中将无法使用-这还意味着您犯的任何小错误都会阻止您的页面在支持XHTML的浏览器中显示。因此,Web上看起来像XHTML的大多数东西实际上都是作为HTML提供和解释的。有关更多信息,请参见将XHTML作为text / html认为有害。
<br/>
与相同<br></br>
,但后者不是有效的HTML。
document.write
不起作用 -感谢分享。我同意Webapp尝试在没有Javascript的情况下执行任何操作是很愚蠢的,但是我试图说,几乎100%依赖Java的网站都比较脆弱,并且在用户禁用javascript(或使用较旧的手机)时可能会失败或其他内容)
我认为HTML 5参考草案中的这句话提供了答案:
3.2.2.2空隙元素
术语void elements用于表示必须为空的元素。这些要求仅适用于HTML语法。在XHTML中,所有此类元素都被视为普通元素,但必须将其标记为空元素。
禁止这些元素完全包含任何内容。在HTML中,这些元素仅具有开始标记。在自闭的标签语法也可以使用。所述结束标记必须被省略,因为该元素被自动由解析器关闭。
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:
开始标签由以下部分组成,并按照以下顺序排列:
- 一个“ <”字符。
- 元素的标签名称。
- (可选)一个或多个属性,每个属性之前必须带有一个或多个空格字符。
- (可选)一个或多个空格字符。
- 可选地,“ /”字符,仅当元素为void元素时才可以出现。
- 一个“>”字符。
/
是一个共同点。HTML5特别允许使用/
:“可选地,一个“ /”字符,仅当该元素为void元素时才可以出现”。
在HTML中(最多HTML 4):使用<br>
在HTML 5:<br>
是优选的,但<br/>
并<br />
也是可以接受
在XHTML中:<br />
是首选。也可以使用<br/>
或<br></br>
笔记:
<br></br>
在HTML 5中无效,它将被视为两个换行符。<br/>
但失败了,但没有<br />
参考:
<br />
由于以下原因,我建议使用:
1)使用不同颜色突出显示XML语法的文本和XML编辑器将正确地使用突出显示,<br />
但如果使用<br>
2)<br />
与XHTML向后兼容,并且格式正确的HTML(即XHTML)通常更易于验证错误和调试
3)一些旧的解析器和一些编码规范要求在斜杠前加空格(例如:<br />
而不是<br/>
),例如WordPress插件编码规范:http : //make.wordpress.org/core/handbook/coding-standards/html/
根据我的经验,我从未遇到过使用<br />
有问题的情况,但是,在许多情况下,<br/>
尤其<br>
是在较旧的浏览器和工具中可能存在问题。
XML要求所有标签都具有相应的结束标签。因此,对于没有内部内容的标记,有一种特殊的速记语法。
HTML5不是XML,因此不应提出此类要求。HTML 4.01也不是。
例如,在HTML5规范中,所有带有br
标记的示例都使用<br>
语法,而不是<br/>
。
UPD实际上<br/>
是HTML5中允许的。9.1.2.1,7。
二者<br>
并<br />
在HTML5是可接受的,但在HTML的精神,<br>
应该被使用。HTML5允许使用斜杠,以便与以前的HTML 4.01和XHTML 1.0的文档更加兼容,从而更容易迁移到HTML5。当然,<br/>
这也是可以接受的,但是为了与某些较旧的浏览器兼容,请在斜杠(/
)前留一个空格。
<br />
完全可以接受,并且W3Schools不是HTML的规范。请参阅HTML5规范,该规范明确指出:“然后,如果该元素是void元素之一,或者如果该元素是外来元素,则可能只有一个“ /”(U + 002F)字符。 ]”
如果您要在常规网站上输出HTML,则可以使用<br>
或 <br/>
,只要您将HTML5作为text / html进行提供,则两者都有效。
如果您将HTML5作为XHTML提供服务(即内容类型application / xhtml + xml,带有XML声明),则必须使用如下所示的自闭标签:<br/>
。
如果不这样做,则某些浏览器可能会拒绝显示页面(特别是Firefox 对于仅显示有效的xhtml + xml页面非常严格)。
如1.中所述,<br/>
它也适用于HTML5,HTML5恰好是XML生成的,但用作常规文本/ html,而没有 XML声明(例如从生成网页的XSL Transform或类似的东西)。
要消除混乱:HTML5中不需要在斜杠前放置空格,并且对页面的呈现方式没有任何影响(如果有人可以举一个例子,我会撤消它,但是我不相信这是是的-但是IE当然对于所有形式的<br>
标记都可以做很多其他的奇怪的事情)。
http://validator.w3.org上的出色验证器对于检查有效内容确实很有帮助(尽管我不确定您是否可以依靠它来检查内容类型)。
<br />
,我<br>
什么时候应该使用unclosed ?
<br/>
在当今这个时代肯定不必担心。
<br>
并以<br/>
不同的方式呈现。一些浏览器解释<br/>
为<br></br>
并插入两个换行符
<br />
意味着<br>>
。
<br>
是足够的,但是在XHTML <br />
优选根据WHATWG和根据W3C。
引用第8.1.2.1的HTML 5.2 W3C推荐标准,2017年14月
开始标记必须具有以下格式:
…
在属性之后,或在标记名之后(如果没有属性),可能存在一个或多个空格字符。(某些属性必须后面跟一个空格。请参见下面的第8.1.2.3节。)
然后,如果该元素是void元素之一,或者如果该元素是外来元素,则可能存在单个U + 002F SOLIDUS字符(/)。该字符对void元素没有影响,但对异物则将start标签标记为自动关闭。
如果使用Dreamweaver CS6,它将自动完成为<br />
。
要在W3C上验证HTML文件,请参见:http : //validator.w3.org/
在验证中,这个问题实际上取决于!DOCTYPE
您要通过的验证。
我个人最喜欢的4.01 Trans
地方是我只使用的地方<br/>
,它清除了验证期间可能弹出的警告和错误。
严格是一个更加复杂的野兽,它讨厌"SHORTTAGS"
并且实际上只是想要<br></br>
在HTML5
代码世界的“ LAX”中,确实没有正确的答案,因为它detects every example you put up
在那里是正确的……
最后,我认为所有问题is what validation YOU PREFER
或the person that you are working for prefers
...随着lackadaisical
代码严格性的发展,html5
我们看到了一些非常懒惰的编码器
恕我直言,出于以下原因,最好使用常规符号(<br />
)而不是宽恕符号(<br>
):
在您的HTML中,可能有些SVG和SVG仅支持常规表示法(例如<rect />
)。
像React和NativeScript这样的框架不是使用XML表示法的情况。
您的标记代码将更易于解析。
即使在深夜,常规符号也更易于阅读和理解。
这两个<br>
和<br />
有效的HTML标签。
如果您使用成熟的文本编辑器,则将其配置为使用常规表示法(Emmet称为XHTML )。
例如,在Visual Studio Code中,您只需将以下行添加到设置中:
"emmet.syntaxProfiles": {"html": "xhtml"}
<br></br>
,并且在X(HT)ML中有效,但在HTML中无效。
好吧,我所知道的是,这<br />
会用白线<br>
中断,在某些情况下只会中断。当我设置IPN脚本(PHP)并发送邮件并检查收件箱时,这发生在我身上。不知道为什么,但我只得到了消息,看起来同时使用<br /> and <br>
在这里查看邮件:http : //snag.gy/cLxUa.jpg
文本的前两部分用分隔<br />
,因此,空白行,底部的最后三行文本和最后的部分用分隔,<br>
并给出新行。
在HTML <br>
和XHTML中<br/>
。
我建议您使用<br/>
。
<br>
效果很好。像XHTML这样的更严格的版本要求您添加结束符,而真正的HTML旧版本则不包含DOCTYPE
make <br>
non-void标签,例如<br></br>
。
总结:<br>
很好。其他的也很好。
在HTML5斜线不再是必要的:
<br>
,<hr>
/>
。参见第8.1.2.1和2节。并查看whatwg.org上的HTML vs. XHTML文档,以及W3C Polyglot标记:W3C上HTML5词汇表的完整介绍。
在HTML的大多数情况下,标记是成对的。但是对于换行符,您不需要一对标签。因此,为了表明这一点,HTML使用了<br/>
格式。<br/>
是正确的。使用该格式。
<br>
标签在HTML中没有结束标签在XHTML中,<br>
必须正确关闭标签,如下所示:<br />
在XML中,每个标签都必须关闭。XHTML是XML的扩展,因此有效的XHTML必须遵循XML的所有规则。因此,即使是空标签(没有子节点的节点)也
应关闭。XML具有一种简短形式,称为空节点自闭标签。你可以写<br></br> as <br />
。因此在XHTML <br />
中使用。
HTML在这方面非常宽容,并且没有这样的规则。因此,在HTML中,诸如<br> <hr> <meta>
etc之类的空节点被编写为没有右斜杠。
的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/" />
并非所有标签都可以自动关闭。例如,<script src="jQuery.min.js" />
XHTML DTD不允许使用标记。
嗯.....有人知道有谁曾经100%遵守W3C规范吗???因此,如果HTML5声称它支持所有三个break元素版本,您可以打赌供应商支持相同甚至更简陋的版本!
在这场辩论中唯一重要的是要始终使用编码,该编码也尽可能地遵循XML规范以及HTML规范。这意味着您应该使用break标签的正确XML版本,并鼓励您的所有团队都这样做:
<br />
相同的斜杠格式应适用于代码中的img,a,hr和meta标签。为什么?因为:
此外,在这里的机器人和机器世界中,机器人不会遇到HTML5为我们解决的相同的人机界面编码问题,他们很乐意返回XML数据系统,并在转换为XML时更快地解析此类UI网页数据。
<br>
并<br />
在某些浏览器中呈现不同的内容,因此选择其他任何一种都不会损害您的项目,但是您确实希望大量查找..replace会影响某些浏览器中的页面呈现,这可能会为您自己甚至增加额外的工作尴尬的是,该更改不会影响您的测试浏览器,但会在客户的首选浏览器中破坏它。
我更喜欢,<br>
因为这是自Erwise和Netscape Navigator(早期的Web浏览器)以来我一直使用的方式,但是没有理由不选择<br />
。对于某些预处理,可比性等可能有用。
即使您的选择归结为倾向于一种外观,或者您(或您最喜欢的HTML编辑器,例如Dreamweaver)也可能希望您的代码符合xml。由你决定。
快速附注:
不要与混淆br
,此外,您还可以考虑wbr
在HTML中使用标记:断行机会标记,它指定可以在文本中的何处添加换行符。
如需进一步阅读,请阅读HTML5规范。
<br>
当然是一个void元素,如您在引文链接中所见。
没有结束标签的元素称为空标签。在html 4和html 5中,结束标记不是必需的,可以省略。
在xhtml中,标记是如此严格。这意味着必须以开始标签开始,并以结束标签结束。
role="presentation"
属性,除非在少数情况下换行符充当“内容”。