【问题标题】:SVG background image in IE9IE9中的SVG背景图片
【发布时间】:2013-01-11 12:58:26
【问题描述】:

我在 Internet Explorer 9 中将 svg 图片作为背景存在一个奇怪的问题。

我测试了以下 css 规则:

background-image: url(./grad.svg);  /* local file */
background-image: url(http://127.0.0.1:7101/path/to/images/grad.png);
background-image: url(http://127.0.0.1:7101/path/to/images/grad.svg);

虽然前两条规则很有效,但最后一条失败了。使用 F12 开发人员工具,它会为 svg 图像显示 (Pending...)。直接使用它们的 url 访问图像,它们在 IE9 中正确显示。

我检查了 Opera 中的所有三个规则,它们都有效。

那么最后一条规则有什么问题呢?

//编辑

另外我测试了以下规则:

background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCAxIDEiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiPgo8bGluZWFyR3JhZGllbnQgaWQ9Imc1MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMCUiIHkxPSIwJSIgeDI9IjEwMCUiIHkyPSIxMDAlIj4KPHN0b3Agc3RvcC1jb2xvcj0iI0ZGRkZGRiIgb2Zmc2V0PSIwIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0UzQTgyMCIgb2Zmc2V0PSIxIi8+CjwvbGluZWFyR3JhZGllbnQ+CjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZzUyNCkiIC8+Cjwvc3ZnPg==);

在 IE9 和 Opera 中运行良好

//编辑2

我也尝试了以下方法:

background-image: url(http://upload.wikimedia.org/wikipedia/commons/a/af/Android-System-Architecture.svg);

成功了!?

【问题讨论】:

  • 你能在 JSFiddle 上重复一遍吗?
  • ahm,不知道如何使用托管在本地网络服务器上的图像?
  • 验证您的本地网络服务器是否为 svg 文件发送了正确的媒体类型,image/svg+xml
  • 检查了image/svg,正如here所说的那样
  • @ErikDahlström 你是对的。从 image/svg 更改为 image/svg+xml。如果您将此添加为答案,我会接受。

标签: css svg internet-explorer-9


【解决方案1】:

确保您的本地网络服务器为 svg 文件发送正确的媒体类型 image/svg+xml

【讨论】:

  • 这很有趣。你能解释一下有什么不同吗?
  • 大概 IE 不会尝试理解无效的媒体类型(至少在这种特定情况下)。
  • @chovy 内网服务器?如果是这样,请参阅stackoverflow.com/a/21703410/109374(IE 有一些特殊设置,在浏览 Intranet 站点时会禁用 HTML5 和 svg)
  • @chovy 我建议您使用该小提琴发布另一个问题以及如何重现该问题的具体细节。
  • 我做到了。没有人有解决方案:stackoverflow.com/questions/23643074/…
猜你喜欢
  • 2015-03-13
  • 2014-07-13
  • 2014-10-10
  • 2012-05-10
  • 2014-07-01
  • 2012-08-29
  • 2011-09-07
  • 2012-02-29
  • 2014-03-17
相关资源
最近更新 更多