【发布时间】:2017-12-11 17:14:49
【问题描述】:
我正在一个使用 SVG 片段文件并通过 CSS 背景图像加载特定 SVG 的网站上工作。
我还有一个 PNG 后备,我使用以下内容作为工作的基础:https://css-tricks.com/a-complete-guide-to-svg-fallbacks/#fallback-svg-css-background-image
示例
.ico-arrow-right {
background: url(ico-arrow-right.png);
background: url(sprite-collection.svg#arrowright),
linear-gradient(transparent, transparent);
}
问题是,它似乎在大多数浏览器上都可以正常工作,但在桌面和 IOS 浏览器上的 Safari 中,SVG 没有出现,只是显示一个空白区域。调查一下,设备上的 Safari/webkit 似乎在将 SVG 片段精灵与 CSS 背景图像一起使用时不喜欢它们。
是否有任何解决方案/解决方法?我仍然想使用 CSS 背景图像来拉入 PNG/SVG,并且不想恢复使用单个 SVG 文件,因为有超过 60 个 svg,我不希望所有这些服务器请求!
谢谢大家
【问题讨论】:
-
问题似乎已经在以前的帖子中解决了:stackoverflow.com/questions/12012573/… 和 stackoverflow.com/questions/6372695/…
-
您也可以尝试用引号编写 url 链接(背景: url('sprite-collection.svg#arrowright') 和/或检查它是否不是服务器端错误(如果是这样的话)可以通过修改.htaccess来解决:stackoverflow.com/questions/22432293/…)
标签: css svg sprite sprite-sheet