在过去的半个小时里,我一直在阅读这方面的内容,这就是我的理解:
如果存在有效的 DTD,IE 6 将以标准模式呈现页面,但如果 DTD 上方有任何注释,则不会。
XML 声明是位于 DTD 之上的注释。
如果 XML 声明包含在条件注释中,则页面将在 IE 6 中以 quirks 模式呈现,但 XHTML 无效。
是否有任何变通方法可以使用 XML 声明获取有效的 XHTML,以便在 IE6 中以标准模式呈现?如果不是,那么完全删除 XML 声明的缺点是什么?
谢谢。
在过去的半个小时里,我一直在阅读这方面的内容,这就是我的理解:
如果存在有效的 DTD,IE 6 将以标准模式呈现页面,但如果 DTD 上方有任何注释,则不会。
XML 声明是位于 DTD 之上的注释。
如果 XML 声明包含在条件注释中,则页面将在 IE 6 中以 quirks 模式呈现,但 XHTML 无效。
是否有任何变通方法可以使用 XML 声明获取有效的 XHTML,以便在 IE6 中以标准模式呈现?如果不是,那么完全删除 XML 声明的缺点是什么?
谢谢。
没有变通办法。从技术上讲,您可以使用浏览器嗅探,但这通常不受欢迎。
在 IE 6 中,您不能真正将 xhtml1.1 与 xml 一起使用,因为内容类型要求它呈现为 xml。即 Content-Type: application/xhtml+xml 在 IE 中死掉了。
您应该只使用带有 doctype 的 xhtml 1.0,并将内容类型作为 text/html 发送。
取出 XML 声明,它不是绝对必要的,并且会导致 IE6 以怪癖模式呈现。您应该使用 XHTML 1.0,它允许将文档呈现为 text/html 以向后兼容 HTML 4.01。
在标准模式下使用 XML 声明的唯一方法是使用XSLT 样式表对其进行转换。