HTML 5:它是<br>,还是<br />?
我试着检查其他答案 ,但我仍然感到困惑 – 尤其是在看到W3schools的HTML 5参考后 。
我认为HTML 4.01应该“允许”单标签只是<img>和<br> 。 然后,XHTML与<img />和<br /> ( 有人说这个空间是为了旧版本的浏览器 )。
现在我想知道如何在练习HTML 5时对代码进行格式化。
<!DOCTYPE HTML>
是吗? <br/>或<br /> ?
简单来说就足够了。
其他forms与XHTML兼容; 使它能够编写与XHTML相同的代码,并使其能够像HTML一样工作。 一些生成HTML的系统可能基于XML生成器,因此不能输出一个纯粹的<br>标签; 如果你使用这样的系统,可以使用<br/>很好,如果你不需要这样做就没有必要了。
然而,实际上很less有人使用XHTML。 你需要把你的内容当作application/xhtml+xml来解释为XHTML,而这在旧版本的IE中将不起作用 – 这也意味着你所做的任何小错误都将阻止你的页面在浏览器中显示支持XHTML。 所以,网页上看起来像XHTML的大部分内容实际上是作为HTML来服务和解释的。 请参阅将文本/ html作为XHTML服务考虑对一些更多信息有害 。
我认为HTML 5参考草案的这个引用提供了答案:
但是,有些元素是禁止包含任何内容的。 这些被称为无效元素。 在HTML中,上面的语法不能用于void元素。 对于这样的元素,必须省略结束标记,因为元素被parsing器自动closures。 这些元素包括br,hr,link和meta等等
HTML例子:
<link type="text/css" rel="stylesheet" href="style.css">在XHTML中,XML语法要求规定,必须使用显式结束标记(如上所述)或空元素语法来明确这一点。 这是通过在右尖括号之前的开始标记末尾插入斜线来实现的。
例:
<link type="text/css" href="style.css"/>作者也可以select在HTML语法中为void元素使用相同的语法。 一些作者也select在斜线之前join空格,但这不是必须的。 (以这种方式使用空白是从XHTML 1.0附录C中的兼容性指导原则inheritance而来的惯例)
XML不允许打开标签,所以它比其他两个更糟糕。 另外两个大致相当于第二个与旧版浏览器兼容的首选项。 实际上,出于兼容性考虑,之前的空格是首选,但我认为只有具有属性的标签才有意义。 所以我可以说是<br/>或者<br /> ,无论你喜欢你的美学。
综上所述:所有三个都是有效的,第一个是“便携式”。
编辑 :现在我们都疯狂的规格,我认为值得指出的是,根据dev.w3.org :
开始标签由以下部分组成,完全按照以下顺序:
- 一个“<”字符。
- 元素的标签名称。
- 可选地,一个或多个属性,每个属性都必须以一个或多个空格字符开头。
- (可选)一个或多个空格字符。
- 可选地,一个“/”字符,只有当元素是空元素时才可以存在。
- 一个“>”字符。
在HTML中(最多到HTML 4) :使用<br>
在HTML 5中 :首选是<br> ,而<br />也是可以接受的
在XHTML中 : <br />是首选。 也可以使用<br/>或者<br></br>
笔记:
- 在HTML 5中,
<br></br>无效,它会被认为是两个换行符。 - XHTML区分大小写,HTML不区分大小写。
- 为了向后兼容,一些旧的浏览器会将XHTMLparsing为HTML并且失败,而不是
<br />
参考:
根据规范 ,预期的格式是HTML 5,但允许使用结束斜杠。
XML要求所有标签都有相应的结束标签。 所以对于没有内容的标签来说,有一个特殊的短手语法。
HTML5不是XML,所以它不应该提出这样的要求。 HTML 4.01也不是。
例如,在HTML5规范中 ,所有使用br标签的例子都使用了<br>语法,而不是。
UPD其实, 在HTML5中是允许的 。 9.1.2.1,7。
我build议使用<br />的原因如下:
1)使用不同颜色突出显示XML语法的文本和XML编辑器会用<br />正确突出显示,但是如果使用<br>则不一定总是如此
2)<br />是向后兼容的XHTML和格式良好的HTML(即:XHTML)通常更容易validation的错误和debugging
3)一些旧的parsing器和一些编码规范需要在结束斜杠之前的空间(即:<br />而不是诸如WordPress Plugin Coding spec): http : //make.wordpress.org/core/手册/编码标准的/ HTML /
我的经验,我从来没有遇到过使用<br />有问题的情况,然而,有很多情况下,特别是在旧的浏览器和工具中可能会有问题。
在HTML5中, <br>和<br />都是可以接受的,但是应该使用HTML的精神。 HTML5允许使用合并斜杠,以便与以前的HTML 4.01和XHTML 1.0文档更兼容,从而更容易迁移到HTML5。 当然, <br/>也是可以接受的,但为了与一些较旧的浏览器兼容,在结束斜线( / )之前应该有一个空格。
如果你对可比性感兴趣(不兼容,但可比性),那么我坚持<br /> 。
否则, <br>很好。
-
如果您在普通网站上输出HTML,则可以使用
<br>或者 ,在任何时候以text / html格式提供HTML5都是有效的。 -
如果您将HTML5作为XHTML(即内容typesapplication / xhtml + xml,带有XML声明)提供,那么您必须使用像这样的自闭标签:
<br/>如果你不这样做,一些浏览器可能拒绝渲染你的页面(特别是Firefox对于只渲染有效的xhtml + xml页面是非常严格的)。
正如在1中指出的那样。对于恰好以XML生成的HTML5也是有效的,但是没有 XML声明(例如从生成网页的XSL转换或类似的东西)作为常规文本/ html。
为了消除混淆:在HTML5中不需要在斜线之前加一个空格,并且不会影响页面的渲染方式(如果有人可以举一个例子,我会收回这个例子,但是我不相信它是真正的 – 但IE确实做了很多其他奇怪的事情与所有forms的<br>标签)。
http://validator.w3.org上的优秀validation器对于检查什么是有效的(虽然我不确定是否可以依靠它来检查内容types)非常有帮助。;
<br/>和渲染不同。 一些浏览器解释为<br></br>并插入两个换行符
<br/>和<br>都可以,但是我喜欢<br/>因为它稍微合乎逻辑。 每当有一个开始标签时,期望结束标签是合乎逻辑的。 因此,如果在不存在结束标记时不使用开始标记,则代码稍微易于阅读。
所有的浏览器(除了可能一些非常老的那些不重要的)将显示完全相同。 但是,不是xHTML complient。
在validation中,这个问题真的取决于你想要通过validation的!DOCTYPE 。
我个人最喜欢的是4.01 Trans ,我只是使用了它,它清除了validation过程中可能popup的警告和错误
严格是一个更复杂的野兽,它"SHORTTAGS" ,毫不夸张地说,
在HTML5或代码世界的“LAX”中,确实没有一个正确的答案,因为它detects every example you put up那里的detects every example you put up都是正确的……
最后,我认为所有重要的is what validation YOU PREFER或者the person that you are working for prefers …在html5代码严格性的lackadaisical运动,我们看到一些非常懒的代码
那么我所知道的就是<br />用白线来rest,而在某些情况下呢只是rest一下。 当我设置IPN脚本(PHP)并发送邮件并检查收件箱时,发生了这种情况。 不知道为什么,但我只有使用<br /> and <br>才能看到整齐的信息
看看这里的邮件: http : cLxUa.jpg
前两段文本是由<br />分隔的,因此空白行,最后三行文本的底部和最后一部分是由<br>分开的,只是给出了新的一行。
和其他人一样,都可以接受。
我猜这个权衡是可读性和向后兼容性,而不是把最less的字符发送给最终用户。
而且由于谷歌使用<br>所以我会。
(当然要记住,他们可能会为我服务<br>因为我使用的是Chrome,他们知道支持它,在IE中他们可能仍然在使用)
在HTML中和在XHTML <br/> 。
我会build议你使用<br/>
工作得很好。 像XHTML这样更严格的版本要求你添加不包含DOCTYPE的closures和真正旧版本的HTML,这个非空的标签就像<br></br> 。
总结一下: <br>很好。 其他的也很好。
HTML中的大多数情况下,标签都是成对的。 但是对于换行符,你不需要一对标签。 因此为了表明这一点,HTML使用了格式。 <br/>是正确的。 使用该格式。
<br>标记在HTML中没有结束标记在XHTML中, <br>标记必须正确closures,如下所示: <br />
在XML中,每个标签都必须closures。 XHTML是XML的扩展,因此必须遵循XML的所有规则才能使用有效的XHTML。 因此即使是空标签(没有子节点的节点)也是如此
应该closures。 XML有一个简短的forms,称为空节点的自闭标签。 你可以写<br></br> as <br /> 。 因此在XHTML中使用<br /> 。
HTML在这方面是非常宽松的,并没有这样的规则。 所以在HTML空节点,像<br> <hr> <meta>等写入没有closures正斜杠。
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/" />
并非所有的标签都可以自行closures。 例如,XHTML DTD不允许。
在HTML5中 ,斜线不再是必要的: <br> , <hr>
<br>是足够的,但在XHTML <br />是首选。
如果您使用Dreamweaver CS6,那么它将自动完成为<br /> 。
要在W3C上validation您的HTML文件,请参阅: http : //validator.w3.org/
嗯…..有没有人知道一个单一的供应商,用户代理或浏览器制造商曾经遵循的W3C规格100%??? 所以如果HTML5说它支持所有三个break元素版本,你可以打赌供应商支持相同,甚至更sloppier版本!
唯一在本次辩论中重要的事情就是一致地使用也可能遵循XML规范以及HTML规范的编码。 这意味着你应该使用正确的XML版本的中断标签,并鼓励你所有的团队做同样的事情:
<br />
代码中的img,a,hr和meta标签应该使用相同的空格斜杠格式。 为什么? 因为:
- 它与旧的XHTML用户代理/浏览器向后兼容
- 浏览器供应商无论如何都支持XML版本,所以HTML5规范是没有意义的。
- 今天,大多数用户代理在过去和未来都会接受它。
- 它允许您的标记与XML标准相媲美,如果您需要返回从标记中创buildXHTML / XML文档。
- 对于所有WEB开发人员来说,继续使用遵循XML的可靠标记实践是一种“良好的编码实践”,包括全部小写的编码,引用的属性,转义的XML字符等等。 将来,如果您不得不切换到XML数据,您将自动进行代码和XML思维。
- 我们只能希望在未来的万维网上,我们摆脱私有供应商实施的标准,回归到坚实,可靠,经过validation的标记,更快地parsing,更快地传输数据,并使我们未来的互联网更加标准化介质使用XML。
此外,在这里的机器人和机器世界中,机器人不具备HTML5为我们解决的人机界面编码问题,他们会很乐意回到XML数据系统,并在转换成XML时快速parsing这样的UI网页数据。
没有结束标签的元素称为空标签。 在html 4和html 5中,结束标记不是必需的,可以省略。
在xhtml中,标签非常严格。 这意味着必须从开始标记开始并以结束标记结束。
在一些浏览器中<br />和<br />呈现方式不同,所以select其中的一个不会损害你的项目,但是期望在一些浏览器中有一个批量的find ..replace来影响页面的渲染,这可能会导致对于你自己来说是额外的工作,如果这个改变对你的testing浏览器没有任何影响,或者在你的客户的首选浏览器中被破坏,那么甚至会感到尴尬。
我更喜欢<br>因为它是我自从使用Erwise和Netscape Navigator(早期的Web浏览器)以来所使用的,但没有理由不select<br />来代替。 对某些预处理,可比较性等可能是有用的
即使你的select归结为喜欢一个在另一个的外观,或者你(或你最喜欢的HTML编辑器,如Dreamweaver)可能会喜欢你的代码是XML兼容。 随你便。
快速的一面注意:
不要与br混淆,但是另外你也可以考虑在你的HTML中使用wbr标签:一个分词机会标签,它指定了在文本中的哪里可以添加换行符。
如需进一步阅读,请阅读HTML5规范 。