用CSS把SVG图片显示为背景图,可分为2种写法:
- 单独的.svg文件,css里用
background-image: url('xx.svg');
去调用 - 使用url的data属性,把svg文件合并到css中
第2种写法直接把svg的xml内容拷贝到css中,有些浏览器会识别不出来,这是由于写法不规范造成的。 规范的写法把svg内容放到css内时需要encode,有两种encode方式: base64 和 URLEncode
做base64的编码后,需要 background-image: url('data:image/svg+xml;base64,这里放base64后的svg')
urlencode可以直接放 background-image: url('data:image/svg+xml;charset=utf-8,这里放urlencode后的svg)
但需要注意URLEncode有两种可能:
空格变加号,这是在 content type 是 'application/x-www-form-urlencoded'时,也就是提交表单时,POST DATA的URLEncoding方式。
空格变%20,这是标准的URL的encode, 在css中使用svg需要用这种encode方法。
如果你找到的工具编码出来空格是加号,可以把+都替换成%20即可。
urlencode 非常有效!感谢