SVG 不尊重背景大小 100% 100%

ker*_*ero 1 css svg image background-image

我有这个 SVG 图像,我想覆盖一个完整的容器,保持其独特的边缘。background-size: 100% 100%;似乎是完美的选择,虽然它适用于常规图像,但在这种情况下不起作用。为什么?

(jpeg 取自James的回答)

html, body {
  background-color: #ddd;
}
.container {
  margin: 20px; padding: 20px; border: 1px solid #000;

  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.container.svg {
  background-image: url(https://svgshare.com/i/RWM.svg);
}
.container.img {
  background-image: url(https://images.pexels.com/photos/370799/pexels-photo-370799.jpeg?auto=compress&cs=tinysrgb&h=350);
}
Run Code Online (Sandbox Code Playgroud)
<div class="container svg">
  some<br>content<br>makes<br>this<br>large
</div>
<div class="container img">
  some<br>content<br>makes<br>this<br>large
</div>
Run Code Online (Sandbox Code Playgroud)

ker*_*ero 5

好的,我只是在阅读了其他几个线程后才弄清楚 - 包括它起作用的线程。

罪魁祸首viewBox<svg>. 当我删除它时,图像会按原样缩放。对于 safari,我需要添加preserveAspectRatio="none".

前:

<svg width="392px" height="499px" viewBox="0 0 392 499" ...
Run Code Online (Sandbox Code Playgroud)

后:

<svg width="392px" height="499px" preserveAspectRatio="none" ...
Run Code Online (Sandbox Code Playgroud)

<svg width="392px" height="499px" viewBox="0 0 392 499" ...
Run Code Online (Sandbox Code Playgroud)
<svg width="392px" height="499px" preserveAspectRatio="none" ...
Run Code Online (Sandbox Code Playgroud)