[英]Is it possible to set a background image on an SVG element with CSS?
Is it possible to target a background-image
SVG with CSS? 是否可以使用CSS定位
background-image
SVG?
.color {
background-color: #fff;
color: #fff;
}
.svg {
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 43'><path class='color' d='M 55.584673,43.175632 36.75281,22.967243 0,43.175632 40.42403,0 59.71135,20.208389 96,0 Z' /></svg>");
}
Your code works fine as you can see below. 您的代码可以正常工作,如下所示。 But you may encounter problems in a case if your SVG will contain same quotes that you're using to place SVG image inside
url()
. 但是,如果您的SVG包含用于将SVG图像放在
url()
相同引号,则可能会遇到问题。 They need to be either quoted like \\"
or replaced. You can also consider encoding your SVG image using base64 encoding, but it will make your CSS size bigger. 它们需要被引用为
\\"
或”替换。您还可以考虑使用base64编码对SVG图像进行编码,但它会使您的CSS大小更大。
svg { background-color: lightgrey; } .color { fill: blue; } .svg-plain { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 43'><path class='color' d='M 55.584673,43.175632 36.75281,22.967243 0,43.175632 40.42403,0 59.71135,20.208389 96,0 Z' /></svg>"); } .svg-base64 { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA5NiA0Myc+PHBhdGggY2xhc3M9J2NvbG9yJyBkPSdNIDU1LjU4NDY3Myw0My4xNzU2MzIgMzYuNzUyODEsMjIuOTY3MjQzIDAsNDMuMTc1NjMyIDQwLjQyNDAzLDAgNTkuNzExMzUsMjAuMjA4Mzg5IDk2LDAgWicgLz48L3N2Zz4=") } .svg, svg { width: 100px; height: 100px; background-position: center; background-repeat: no-repeat; background-color: lightgrey; margin: 5px; }
<div class="svg svg-plain"></div> <div class="svg svg-base64"></div> <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 43'><path class='color' d='M 55.584673,43.175632 36.75281,22.967243 0,43.175632 40.42403,0 59.71135,20.208389 96,0 Z' /></svg>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.