【发布时间】:2019-05-08 19:06:38
【问题描述】:
TL;DR: 是否可以根据通过img 标签包含的 svg 中的媒体查询加载其他图像?
我生成了一堆 svg 文件,其中包含带有文本和图标的表格。 PDF 在语义上将是一个更好的容器,但我需要将此类“文档”保留为图像以进行无缝嵌入/预览,它可能无法解决我的问题。所以这个故事是关于图标的。
我编写了内联样式,其中包含与用户屏幕 DPI 相对应的媒体查询选择图标。图标已经绑定到精灵中,所以我使用pattern/image[xlink:href] + fill:url(#id)。当我将 svg 直接嵌入 HTML(DOM 岛)时,一切都按需要工作。但是如果我通过img 标签(即<img src="foo.svg">)嵌入svg,它根本不会加载图标,更不用说显示它们了。
我知道,我可以通过 data-URL 嵌入图标,但为所有支持的屏幕 dpi 嵌入图标似乎太多了。具有讽刺意味的是,图标是光栅图标,很难矢量化像素艺术,所以我不能为所有 DPI 设置一组图标。
有没有办法让媒体查询选择正确的图标而不嵌入它们?
【问题讨论】:
标签: css svg media-queries embedded-resource