0

当我打开我的项目时,只显示背景和未找到图像项,而页面是 100% xhtml 1.1 严格的。开发人员工具显示 IE 在 SVG 徽标后停止渲染... Firefox 正常工作。该死的你!

4

2 回答 2

1

尽量不要自行关闭“对象”标签。

<object data="/images/Logo_header.svg" type="image/svg+xml"></object>

代替

<object data="/images/Logo_header.svg" type="image/svg+xml" />

不确定这是否是一个错误,或者 FF 可以正常恢复。只有当您也将您的页面作为 XML 提供时,它才是有效的 XML,而您没有这样做。您使用“text/html”而不是“application/xhtml+xml”。

于 2010-01-11T13:17:41.033 回答
1

Kamiel 是对的:您不能在 IE 上使用 XML 自闭合标签。在任何情况下,由于 IE 无法呈现 SVG,因此无论如何您都需要在对象内包含一些后备内容,例如图像。

我建议不要使用您目前使用的嗅探和服务 XHTML-as-XML-or-HTML 方法。它没有任何好处;你只会遇到像这样奇怪的兼容性问题,因为你的文档是用不同的解析、样式和 DOM 上下文处理的。更重要的是,Vary: Accept当您执行此操作时必须在响应中使用的标头会使缓存在 IE 中的效率大大降低。无论如何,W3明确不允许XHTML-as-text/html 用于 XHTML 1.1 文档。

要么全力以赴,只提供 XHTML 1.1(牺牲 IE 兼容性),要么坚持将 XHTML 1.0 Strict 内容作为 text/html 提供给所有人,遵守兼容性指南

于 2010-01-11T15:12:08.773 回答