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