我已经试着查询了其他答案,但我仍然感到困惑,特别是在看了W3schools HTML 5 参考手册之后。
我以为 HTML 4.01 应该允许只使用单标签如<img>
和 <br>
。 然后 XHTML 出现了<img />
和<br />
(有人说这个空格是为了老版本的浏览器)。
现在我想知道练习 HTML 5 时应该如何格式化我的代码。
应该使用<br>
,<br/>
或<br />
呢?
我已经试着查询了其他答案,但我仍然感到困惑,特别是在看了W3schools HTML 5 参考手册之后。
我以为 HTML 4.01 应该允许只使用单标签如<img>
和 <br>
。 然后 XHTML 出现了<img />
和<br />
(有人说这个空格是为了老版本的浏览器)。
现在我想知道练习 HTML 5 时应该如何格式化我的代码。
应该使用<br>
,<br/>
或<br />
呢?
简单地说,<br>
就足够了。
其他形式是为了与 XHTML 兼容;这样可以编写相同的代码作为 XHTML,并且也能作为 HTML 工作。一些生成 HTML 的系统可能基于 XML 生成器,因此没有能力仅输出裸的 <br>
标签;如果您正在使用这样的系统,则使用 <br/>
是可以的,但如果不需要这样做,则不必这样做。
XHTML 并不常用。在这种情况下,内容需要作为 application/xhtml+xml
提供才能被解释为 XHTML,而这在旧版本的 IE 中无法工作 - 这也意味着任何小的验证错误都会阻止页面显示。因此,大多数看起来像 XHTML 的网络实际上是作为 HTML 提供和解释的。请参见 Serving XHTML as text/html Considered Harmful 获取更多信息。
3.2.2.2 Void Elements
The term void elements is used to designate elements that must be empty. These requirements only apply to the HTML syntax. In XHTML, all such elements are treated as normal elements, but must be marked up as empty elements.
These elements are forbidden from containing any content at all. In HTML, these elements have a start tag only. The self-closing tag syntax may be used. The end tag must be omitted because the element is automatically closed by the parser.
HTML Example:
A void element in the HTML syntax. This is not permitted in the XHTML syntax.
<hr>
Example:
A void element using the HTML- and XHTML-compatible self-closing tag syntax.
<hr/>
XHTML Example:
A void element using the XHTML-only syntax with an explicit end tag. This is not permitted for void elements in the HTML syntax.
<hr></hr>
换句话说:
<IMG></IMG>
<IMG>
,<IMG/>
而且,虽然HTML禁止某些闭合标签,但XHTML要求它们:
<img>
<img></img>
或 <img/>
其他在HTML中禁止使用闭合标签的元素:
元素 | 有效的HTML | 有效的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> |
</BR>
` 是被禁止的
- `</P>
` 是可选的
- `</SPAN>
` 是必需的<br>
比其他两个差一些。其他两个大致等同,第二个(<br/>
)更适合与旧浏览器兼容。实际上,在"/"前加空格是为了兼容性而更受欢迎,但我认为只有具有属性的标签才有意义。因此,我会说要么使用<br/>
,要么使用<br />
,取决于您的审美观。<br>
)稍微不太“便携”。<br>
在HTML 5中:推荐使用<br>
,但<br/>
和<br />
也可以接受<br />
。也可以使用<br/>
或<br></br>
注意:
<br></br>
在HTML 5中无效,会被视为两个换行符。<br/>
失败时而不是<br />
。<br/>
和带有空格的<br />
是等价的,在其中没有偏好。参见XML 1.0规范。 />
之前的空白(空格、制表符或换行符)是可选的,并且没有任何偏好。 - Basil Bourque出于以下原因,我建议使用<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>
可能会有问题。
>
之前立即带有/
字符。但它没有任何影响。如果存在,则会被忽略。如果/
是语法的首选部分,则标准会使用“应该”而不是“可能”。 - jmarkmurphy如果您对比较性感兴趣(不是兼容性,而是比较性),那么我建议使用<br />
。
否则,<br>
也可以。
<br>
和<br />
在HTML5中都是可接受的,但根据HTML的精神,应使用<br>
。HTML5允许在结束标记中添加斜线以更好地兼容之前的HTML 4.01和XHTML 1.0文档,并使迁移到HTML5更加容易。当然,<br/>
也是可以接受的,但为了与一些旧版本的浏览器兼容,结束标记前应该有一个空格 (/
)。
<br />
是完全可以接受的,而 W3Schools 不是 HTML 规范。请参阅 HTML5 规范,其中 明确 指出:“然后,如果元素是 空元素 之一,或者如果元素是 外部元素,则可能会有一个 单个 "/" (U+002F) 字符。[强调添加]” - Kevin Ji<br>
或<br/>
,在服务HTML5作为text/html时两者都是有效的。如果您将HTML5作为XHTML(即内容类型为application/xhtml+xml,并带有XML声明)提供,则必须使用自闭合标签,例如:<br/>
。如果不这样做,一些浏览器可能会拒绝呈现您的页面(Firefox特别严格,只呈现有效的xhtml+xml页面)。如1所述,<br/>
对于生成为XML但作为常规text/html提供(例如从生成Web页面的XSL Transform或类似工具中),也是有效的。<br />
,那么何时应该使用未闭合的<br>
? - amwinter
<br/>
或<br />
它们最终也会被浏览器转换为<br>
。 - Satish Chandra Gupta