浏览器无法正确识别的原因是什么:
只有这一点得到承认:
这是否打破了XHTML支持的概念?
注意:此声明至少对所有IE(6-8 beta 2)都是正确的.
XHTML 1规范说:
С.3.元素最小化和空元素内容
给定其内容模型不是的元素的空实例
EMPTY
(例如,空标题或段落)不使用最小化形式(例如,使用而不是使用
).
XHTML DTD将脚本标记指定为:
非空,所以它不能自动关闭.在XHTML 1.1中,它*可以*自动关闭.
2> joelhardi..:
为了补充Brad和squadette所说的,自动关闭的XML语法实际上是正确的XML,但是为了使它在实践中工作,您的Web服务器还需要将您的文档作为正确形成的XML与XML模仿类型一起发送,例如
application/xhtml+xml
在HTTP中Content-Type头(和不作为text/html
).
但是,发送XML mimetype将导致您的页面不被IE7解析,IE7只喜欢text/html
.
从w3:
总之,'application/xhtml + xml'应该用于XHTML Family文档,'text/html'的使用应该仅限于HTML兼容的XHTML 1.0文档.也可以使用'application/xml'和'text/xml',但是在适当的时候,应该使用'application/xhtml + xml'而不是那些通用的XML媒体类型.
几个月前我对此感到困惑,唯一可行的(与FF3 +和IE7兼容)解决方案是使用旧语法
text/html
(HTML语法+ HTML mimetype).
如果您的服务器text/html
在其HTTP标头中发送类型,即使使用其他正确形成的XHTML文档,FF3 +也将使用其HTML呈现模式,这意味着它将无法工作(这是一个更改,Firefox以前不那么严格).
无论是http-equiv
在文档中使用元标记,XML序言还是文档类型,都会发生这种情况- 一旦获得text/html
标题,Firefox就会分支,这将确定HTML或XML解析器是否在文档内部查看,而HTML解析器无法理解.