为什么与XHTML中的<br> </ br>不同?

And*_*ndy 4 html xhtml

这是HTML页面的完整来源:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head></head>
<body>
one<br>
two<br />
three<br></br>
four    
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么当我在IE8或Chrome中查看页面时,在"三"和"四"之间出现一个额外的空行?

我认为标准应该使所有浏览器看起来都一样,据我所知,这个页面符合XHTML过渡标准

Rob*_*ett 8

因为XHTML规范 HTML Compatability Guidelines指定br 必须自行关闭.显然Chrome和IE8并未遵循规范并为您关闭打开的规格,从而创建了第二个换行符.


Alo*_*hci 8

一些很好的答案了,但只是指出,HTML5实际上规定的是<br></br>应该被解析为两个<br>为text/html解析时开始标记.

An end tag whose tag name is "br"http://dev.w3.org/html5/spec/tokenization.html#parsing-main-inbody

Firefox 3.x只在quirks模式下执行此操作,但Firefox 4也在标准模式下执行此操作.


fre*_*ley 5

虽然有效,但这是非常不寻常的代码.更有可能的是开发人员误用<br></br>何时使用<br/>.出于这个原因,大多数浏览器都将其解释为<br/>.