为什么<br/>而不是?

时间:2009-11-02 02:45:49

标签: xhtml tags

这是你曾经读过的一件事,说“啊哈!”然后忘了完全是我的情况。

为什么xhtml中的换行符标记优先用空格<br />写入而不是用ok格式<br/>写入?我记得原因很有趣,而你可以想象用谷歌找到它并不容易。

当然,这不是xml格式良好的问题。来自W3C

[44]    EmptyElemTag       ::=      '<' Name (S Attribute)* S? '/>' 

   Empty-element tags may be used for any element which has no content, whether
   or not it is declared using the keyword EMPTY. For interoperability, the 
   empty-element tag should be used, and should only be used, for elements which 
   are declared EMPTY.

Examples of empty elements:

<IMG align="left"  src="http://www.w3.org/Icons/WWW/w3c_home" /> 
<br></br> 
<br/>

所以最后的空格是可选的。

13 个答案:

答案 0 :(得分:45)

w3c将其指定为语法:

EmptyElemTag       ::=      '<' Name (S Attribute)* S? '/>'

这意味着打开括号,名称,多个(空格和属性)标记,可选空格,斜杠和结束标记。据此,两者都是正确的。

答案 1 :(得分:23)

一些旧的浏览器没有空间就没有正确解析元素,因此大多数Web开发人员使用<br />。我不记得哪个浏览器,但我相信它们已经灭绝了。

编辑The browser was Netscape 4

答案 2 :(得分:21)

如果我没记错的话,这只是因为一些旧浏览器在斜线之前没有空格的自闭标签出现问题。我怀疑这是一个现在的问题,但很多开发人员(包括我自己)养成了包含空间的习惯。

编辑:啊,我们在这里:

http://www.w3.org/TR/xhtml1/#guidelines

  

在尾随/和&gt;之前加一个空格空元素,例如<br /><hr /><img src="karen.jpg" alt="Karen" />。此外,对空元素使用最小化标记语法,例如<br />,因为XML允许的替代语法<br></br>在许多现有用户代理中提供了不确定的结果。

答案 3 :(得分:15)

XHTML中没有正确的方法。它们在XML中正式相同。空白在那个位置并不重要。

答案 4 :(得分:9)

对于XHTML:两者都有。对于HTML4及更早版本:都不是。

答案 5 :(得分:7)

<br />是有效的(旧)HTML,而<br/>则不是。如果您以XML格式提供XHTML,则无关紧要。如果您将其作为text/html提供,那么除了有效的XHTML之外,它还需要是有效的HTML。 (为什么将XHTML作为HTML提供?因为IE不能将XHTML理解为XML,并且因为没有主要的浏览器会在下载文本的过程中开始渲染XHTML,但是他们会对HTML进行渲染。我的博客似乎加载速度不慢,因为网站速度很慢,但是因为浏览器在获取所有内容之后才会开始呈现页面。我讨厌浏览器。)

答案 6 :(得分:7)

有一些背景可以补充Matt Hamilton的答案。

至少有一个问题浏览器是Netscape 4.快速检查显示在该浏览器中,&lt; br /&gt; (即没有空格)不会导致换行。事实上,它似乎没有做任何事情。 &lt; br /&gt; (即有空格)确实执行换行符。

当创建可以表现为XHTML或HTML的多语言文档时(注意:“表现为” - 不是“有效”),有必要使用&lt; br /&gt;或&lt; br&gt;&lt; / br&gt;。但是,在旧浏览器中,甚至在现代浏览器中以怪异模式呈现页面时,&lt; / br&gt;表现得像&lt; br&gt;,所以&lt; br&gt;&lt; / br&gt;产生两个换行符。

答案 7 :(得分:5)

<br/><br />都是正确的。 <br />首先出现的原因是支持不了解新<br/>语法的旧版浏览器。这真是一种骇客,/被解释为没有值的属性而被忽略。

答案 8 :(得分:4)

两者都是正确的,两者都将被Web浏览器接受。您也可以为自己保留额外的字符,并使用<br/>

答案 9 :(得分:3)

两者都是正确的。但是我会使用<br />来保持我的代码一致......因为我永远不会写

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>

而不是

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

只是为了保存一个字节...而第二个版本是更好的可读性。但那只是品味问题。按你的意愿去做,但要保持一致: - )

答案 10 :(得分:1)

两者都可以正常工作。假设你要求福音派的原因,我更喜欢&lt; br /&gt;

答案 11 :(得分:0)

两者都是正确的。

答案 12 :(得分:0)

<br>。你还没有使用XML。