为啥 background-size:100% 100%;不适用于此 SVG?

Posted

技术标签:

【中文标题】为啥 background-size:100% 100%;不适用于此 SVG?【英文标题】:Why does background-size:100% 100%; not work on this SVG?为什么 background-size:100% 100%;不适用于此 SVG? 【发布时间】:2018-04-09 07:18:07 【问题描述】:

看例子:

.container 
   background-image:url("http://svgshare.com/i/3cM.svg");
   background-position:center center;
   background-repeat:no-repeat;
   width:400px;
   height:200px;
   background-color:#eef;
   border-bottom:1px solid #000;
   background-size:100% 100%;
<div id="container1" class="container"></div>

相关问题:Stretch a background image (SVG) to 100% width and 100% height?

【问题讨论】:

我相信你必须使用 100% 在容器中嵌套另一个元素 嗯,在我的实时示例中,这也不起作用。一定是某些 SVG 文件有问题? jsfiddle.net/JknDr/123 - 这适用于我在 Chrome 上。如果高度是问题,是的,您可能需要找到一个按比例缩放的 svg。 【参考方案1】:

打开您的 .svg 文件并设置

preserveAspectRatio="none"

在 SVG 标签内。

【讨论】:

找到相关的:***.com/questions/9334095/… 这让我发疯了。谢谢你的解决方案!【参考方案2】:

按照评论中的建议,将 svg 容器包装在另一个容器中,并为包装器提供所需的尺寸。在这种情况下,我将包装器设置为100vw 宽度和100vh 高度。更改包装器尺寸并注意 svg 将随之而来。

html, body 
  padding:0;
  margin:0;


.wrapper 
  width:100vw;
  height:100vh;


.container 
   background-image:url("http://svgshare.com/i/3cM.svg");
   background-position:center center;
   background-repeat:no-repeat;
   width:100%;
   height:100%;
   background-color:#eef;
   border-bottom:1px solid #000;
   background-size:100% 100%;
<div class="wrapper">
  <div id="container1" class="container"></div>
</div>

【讨论】:

以上是关于为啥 background-size:100% 100%;不适用于此 SVG?的主要内容,如果未能解决你的问题,请参考以下文章

background-size

背景尺寸:100% 不适用于 iPhone

background-size

css怎么让一张图片适应任何屏幕大小的电脑平铺?

关于IE9-解决background-size的问题

background-position百分比原理