【发布时间】:2014-04-18 13:26:11
【问题描述】:
我在一个项目中使用 SVG,像这样在 css 中加载:
background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20width%3D%2222px%22%20height%3D%2238px%22%20viewBox%3D%220%200%2022%2038%22%20enable-background%3D%22new%200%200%2022%2038%22%20xml%3Aspace%3D%22preserve%22%3E%3Cstyle%3E.style0%7Bfill%3A%09%23f47216%3B%7D%3C/style%3E%3Cpath%20d%3D%22M2.643%2038c-0.64%200-1.282-0.231-1.79-0.699c-1.074-0.988-1.143-2.661-0.154-3.735l13.13-14.258L0.664%204.4%20c-0.967-1.094-0.865-2.765%200.229-3.732s2.765-0.864%203.7%200.229L19.37%2017.592c0.898%201%200.9%202.545-0.035%203.542L4.588%2037.1%20C4.067%2037.7%203.4%2038%202.6%2038z%22%20class%3D%22style0%22/%3E%3C/svg%3E');
我有一些悬停状态可以通过更改箭头的填充颜色来突出显示。
现在,我只是将相同的 svg 数据与填充部分(填充%3A%09%23f47216%3B%7D%3C,其中 f47216 是颜色)更改为右侧/新的颜色。效果很好。不过,我想知道是否还有其他更聪明的方法。
【问题讨论】:
-
如果您设置为您的 svg 内容使用 background-image / data uri,那么您这样做的方式是唯一可以让它工作的方法。背景图像被视为只是一个图像文件,您无法使用其他 CSS 样式更改它,就像您无法更改 PNG 或 JPEG 文件一样。
标签: css svg background fill