我正在为图标使用 SVG spritesheet。我想对 :hover/:active 进行颜色更改。改变 SVG 颜色的唯一方法(我发现)是 SVG 数据是内联的。有一个很好的脚本可以将外部 .svg 转换为内联 SVG 代码:
如何使用 CSS(jQuery SVG 图像替换)更改 SVG 图像的颜色?
但我认为它不适用于 spritesheet,因为页面上的每个 sprite 都将被注入整个 spritesheet 的路径,而不仅仅是特定 sprite 需要显示的 1。
有没有一种方法可以基于类(或其他东西)提取 spritesheet xml 的特定部分(精灵)以放入 HTML 标记中?我唯一的想法是手动分解spritesheet,将每个sprite path-string放入一个数组/对象中,并使用js(可能是Raphael)编写内联标记并设置悬停颜色;但我不确定会增加什么样的开销,或者它是否是一种非常复杂的方式来做不应该做的事情。