简体   繁体   English

是否可以使用CSS在SVG元素上设置背景图像?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM