这是你读过一次的东西之一,说"啊哈!" 然后忘了 完全是我的情况.
为什么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/>
Run Code Online (Sandbox Code Playgroud)
所以最后的空间是可选的.
Mat*_*att 45
w3c将其指定为语法:
EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
Run Code Online (Sandbox Code Playgroud)
这意味着打开括号,名称,多个(空格和属性)标记,可选空格,斜杠和结束标记.据此,两者都是正确的.
Mat*_*ton 21
如果我没记错的话,这只是因为一些旧的浏览器在斜线之前没有空格的自关闭标签出现问题.我怀疑这是一个现在的问题,但很多开发人员(包括我自己)养成了包含空间的习惯.
编辑:啊,我们在这里:
http://www.w3.org/TR/xhtml1/#guidelines
包括结尾之前/空元件,例如一个空间和>
<br />,<hr />和<img src="karen.jpg" alt="Karen" />.此外,对空元素使用最小化标记语法,例如<br />,因为<br></br>XML允许的替代语法在许多现有用户代理中给出不确定的结果.
bma*_*ies 15
XHTML中没有正确的方法.它们在XML中正式相同.空白在该位置并不重要.
<br />是有效的(旧)HTML,而<br/>不是.如果您以XML格式提供XHTML,则无关紧要.如果您将其作为服务text/html,那么除了有效的XHTML之外,它还需要是有效的HTML.(为什么将XHTML作为HTML提供?因为IE不能将XHTML理解为XML,并且因为没有主要的浏览器会在下载文本的过程中开始渲染XHTML,但是他们会对HTML进行渲染.我的博客似乎加载速度不慢,因为该网站速度很慢,但因为浏览器在获取所有内容之前不会开始呈现页面.我讨厌浏览器.)
添加到Matt Hamilton的答案的一点背景.
至少有一个问题浏览器是Netscape 4.快速检查显示,在该浏览器中,<br/>(即没有空格)不会导致换行.事实上,它似乎没有做任何事情.<br />(即带空格)确实执行换行符.
在创建可以表现为XHTML或HTML的多语言文档时(注意:"表现为" - 而不是"有效"),有必要使用<br />或<br> </ br>.但是,在旧浏览器中,甚至在现代浏览器中以怪异模式渲染页面时,</ br>的行为与<br>类似,因此<br> </ br>会产生两个换行符.