所以我在Chrome 6,IE 8和Firefox 3.5中尝试过这个XHTML 1.1代码(在validator.w3.org上验证)。 <p>
之后的<a/>
获取超级链接,<p>
之后的<div/>
变为红色:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
</head>
<body>
<p><a href="http://www.yahoo.com"/></p>
<p>
this should not be hyperlinked
</p>
<div style="background:red"/>
<p>this should not be red</p>
</body>
</html>
对于任何尝试使用XML解析器/生成器处理文档的人来说,这都是个坏消息。
我或许可以将所有</>
代码转换为<></>
,但这意味着像<br/>
这样的内容会变成<br></br>
- 这很奇怪,尽管很奇怪有效的。
思想?
答案 0 :(得分:4)
如果您使用XML内容类型(例如application/xhtml+xml
)提供文档,那么您不应该遇到此问题。
听起来您正在以text/html
的形式提供文档(虽然this isn't blessed by the text/html specification只能达到XHTML 1.0),在这种情况下,您需要关注the HTML compatibility guidelines,因为您告诉浏览器(和其他用户代理)它是HTML而不是XHTML。
我或许可以将所有
</>
代码转换为<></>
,但这意味着像<br/>
这样的内容会变成<br></br>
- 这很奇怪,尽管很奇怪有效的。
......而且错了。有些浏览器会将其视为<br><br>
。 Elements defined as EMPTY should use self-closing syntax,everything else should have explicit start and end tags。
可悲的是,使用正确内容类型的简单选项只会引入一个不同的问题......
...虽然我相信当IE9引入对XHTML的支持时,IE8及更低版本将失去显着的市场份额,这将得到解决。