如何在 Safari 上调整背景图像的大小?

Posted

技术标签:

【中文标题】如何在 Safari 上调整背景图像的大小?【英文标题】:How to resize background image on Safari? 【发布时间】:2017-12-13 02:47:01 【问题描述】:

In Chrome

Chrome 中,它的工作原理与上图相同。In Safari 但是,在 Safari 中,它不能如上所示。

CSS代码如下:

background-image: url(rendyhome.png);
background-size: auto 66vh;
background-repeat: no-repeat;
background-position: right;

我该如何解决?

【问题讨论】:

【参考方案1】:

背景尺寸:包含; 您可以尝试使用以下代码告诉浏览器将图像保留在容器内,然后将其居中。此解决方案可能会在图像周围创建可以使用background color 填充的空白颜色;

background-size: contain;
background-position: center;

https://developer.mozilla.org/en-US/docs/Web/CSS/background-size

一个尽可能大地缩放图像并保持 图像纵横比(图像不会被压扁)。图像是信箱的 容器内。当图像和容器不同时 尺寸,空白区域(左/右的顶部/底部)是 填充背景色。

背景尺寸:封面; 您还可以使用background-size: cover;,它将用您的图像完全填满屏幕。 小心:使用此技术,如果屏幕比例与您的图像不同,您需要知道图像可能会被浏览器剪切(认为是响应式的)。正如我在您的图片中看到的那样,里面有一些文字,因此封面解决方案可能不适合保持它们可见。

当图像和容器的尺寸不同时,图像是 剪裁左/右或上/下。

两种解决方案都不错,但效果不同。这取决于您的行为偏好。即使两种解决方案都遵循图像比例,一个解决方案剪辑/剪切,另一个解决方案会在图像周围创建空白。 这是来自 marcarea.com 的图片,以便进行总结。你可以看到我之前描述的行为。

【讨论】:

【参考方案2】:

看这里: https://www.w3schools.com/cs-s-ref/css3_pr_background-size.asp

我会考虑使用

background-size: cover;

将背景图像缩放到尽可能大,以便 背景区域完全被背景图像覆盖。一些 背景图像的某些部分可能不在背景中显示 定位区域

【讨论】:

以上是关于如何在 Safari 上调整背景图像的大小?的主要内容,如果未能解决你的问题,请参考以下文章

Kineticjs如何在舞台上居中图像并根据浏览器调整大小

如何自动将div的高度调整到背景图像?

响应式设计:如何调整图像/背景图像的大小并垂直对齐 div?

如何使用 GraphicsMagick 从图像中裁剪/调整背景/边框的大小

jQuery:如何平滑动画图像大小调整

如何根据需要调整背景图像的大小