我在使用 MIME 发送的 XHTML 文档类型的页面上遇到问题application/xml
。
Firefox 3.6 是唯一一个body
元素背景在模式下不再占据整个页面的浏览器application/xml
(http://stackoverflow.com/questions/5225237/background-of-body-element)。
这应该发生吗?是否应该将纯 XML 的 MIME 与 XHTML 的 DOCTYPE 视为 XHTML 网页?
在https://stackoverflow.com/a/5225321/271577中使用相同的引用,它取决于根元素。尽管 XHTML 可能会出现异常,但如果无法通过检测(无论是 DOCTYPE 嗅探、名称空间检查等)识别内容类型,那么 XML 很可能不太可能呈现为 XTHML,而是呈现为XML。
XML 可以用 CSS 呈现,即使它没有像 XHTML 那样为任何元素分配默认样式(因为它是一种定义自己语言的语言)。要指定样式,就像在 XHTML 中一样,必须特别选择元素是使用display: block;
还是display:inline
.
XML 规范没有提到 DOCTYPE 嗅探,并且这种做法已经被一些 XML 的人反对:http: //hsivonen.iki.fi/doctype/#xml支持命名空间和处理指令。
但是根据https://developer.mozilla.org/en/Mozilla%27s_DOCTYPE_sniffing,4.0 之前的 Firefox“仅对作为 text/html 发送的文档进行嗅探”并且 application/xml 应该“触发完整标准模式”。但是,这是指区分不同的 HTML 模式;为了从 XML 中识别 XHTML,在https://developer.mozilla.org/en/XML_in_Mozilla,我相信以下内容可能暗示一个公认的 PUBLIC DOCTYPE 应该被用来区分 XHTML 和“纯”XML:
请注意,XHTML 实体,如 ä,仅适用于具有有效 XHTML 正式公共标识符(或换句话说,具有 PUBLIC 标识符的 DOCTYPE 部分)的符合 XHTML 文档。XHTML 实体不能在任意 XML 文档中工作,即使使用 XHTML 命名空间也不行。”然后是一个有效标识符列表。
但是,如果您使用的是公认的 PUBLIC DOCTYPE 并且它仍然没有被视为真正的 XHTML(例如,能够单独设置 body 标记的样式,而无需设置 html 根的样式——我似乎记得的一种做法可能是对于 XHTML/HTML 多语言文档来说是必要的,至少在更早的时候),那么我的猜测也是它是一个错误。我还认为命名空间应该就足够了(没有命名空间,它不应该工作,因为 XML+命名空间需要一个用于特定于应用程序的行为)。