English 中文(简体)
为什么XHTML中的<br/>与<br></br>不同?
原标题:why is <br /> different from <br></br> in XHTML?
  • 时间:2011-02-15 17:03:57
  •  标签:
  • 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>

有人能解释为什么当我在IE8或chrome中查看页面时,“三”和“四”之间会出现额外的空行吗?

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

最佳回答

因为XHTML规范HTML兼容性准则指定br

问题回答

已经有了一些不错的答案,但只是要指出HTML5实际上指定<;br></br>应该被解析为两个<code><;br>解析为text/html时启动标记。

请参阅的结束标记http://dev.w3.org/html5/spec/tokenization.html#parsing-主体“rel=”noreferrer“>http://dev.w3.org/html5/spec/tokenization.html#parsing-主体

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

尽管有效,这是极不寻常的代码。更可能的是,开发人员错误地使用了<;br/gt;<;/br>;,而它们的意思是<;br/>;。因此,大多数浏览器会将两者解释为lt;br/>;

三和四之间的额外一行是因为有两个<code><;br/>它们之间的标签。第一个将内容移动到下一行,第二个将内容再向下移动一行。这是意料之中的行为。

Edit Sorry, thought it was strict for the following.
Also, <br /> tags are empty tags and so, must be closed. Because of this, I don t think that <br> is technically xhtml compliant. It should be <br />.

I.E似乎将
和两者解释为“链接中断”,并为每一个添加类似的中断。

在XHTML中,它们是相同的,如果您将文档作为application/XHTML+xml提供,则浏览器之间不会有任何差异(假设浏览器支持XHTML,而IE 8及更低版本不支持XHTML)。

如果您将文档作为text/html/code>提供,它将被视为html,而不是XHTML,并且在html<;br>是禁止使用结束标记的元素。如果包含明确的结束标记,则某些浏览器将错误更正为假定</br><;br>启动标记。

如果您声称XHTML是text/html,则必须遵守各种附加规则。这些在兼容性准则。此特定准则适用于永远不能有内容的元素

充当text/html是一种黑客攻击,旨在作为向XHTML本身过渡期间的短期措施。各种因素(包括缺乏微软的支持)阻止了这一转变的完成,HTML5运动已经放弃了这一想法,转而使用可选和禁止的结束标记(但添加/>;作为语法糖)。





相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

image changed but appears the same in browser

I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!