如何使用CSS缩放图像以填充一个div并保持纵横比?
问题的原因是无法通过CSS来实现保持图片纵横比例的同时填充一个div,并且图片在div中居中显示。第一种方法只指定了一个维度的尺寸,导致图片不会居中。第二种方法使用了Flexbox布局来居中图片,但是图片的宽度仍然没有完全填充父元素。
解决方法是使用背景图像来填充div,并通过设置background-size属性来保持图片的纵横比例。代码如下:
div { width: 80px; height: 80px; border: 2px solid red; background-image: url('https://i.stack.imgur.com/jqLVj.png'); background-size: cover; background-position: center; }
这样,图片将会自动调整大小以填充div,并且保持纵横比例。同时,图片也会居中显示在div中。
效果如下:
![kitten](https://i.stack.imgur.com/jqLVj.png)
通过这种方法,我们可以实现图片的缩放,保持纵横比例,并且图片居中显示在div中。
如何使用CSS对图像进行缩放以填充一个div并保持纵横比?
问题的原因是,当我们尝试使用CSS将图像放入一个div中并保持其纵横比时,可能会遇到一些困难。我们可能会发现,使用max-width
属性,图像将被包含在div内,不会出现溢出。但是,如果我们使用min-width
属性,那么较短的一边将恰好占据div的100%,而另一边可能会更长。
为了解决这个问题并使图像居中,我们可以使用transform
和相对定位。我们可以使用translate(-50%, -50%)
将图像向左上方偏移50%,然后使用相对定位将图像向右下方偏移50%。这样,图像将在div中居中显示。
以下是解决问题的代码:
div { overflow: hidden; } .thumb { min-width: 100%; min-height: 100%; transform: translate(-50%, -50%); position: relative; left: 50%; top: 50%; }
问题的出现原因:
在CSS中缩放图像以填充一个div并保持纵横比的问题。
解决方法:
下面的代码可以解决这个问题:
width:100%; height:100%; object-fit: cover; overflow: hidden;
需要注意的是,这种解决方法在Internet Explorer中不起作用。同时,对于那些声称“所有提出的解决方案都不起作用”的说法,对我来说有点奇怪,因为来自MoLow、Greg和我自己的解决方案似乎都起作用。此外,使用object-fit: scale-down;
,然后再使用overflow: hidden;
是多余的。非常感谢这个解决方法,对我来说非常有用。包括高度是我之前遗漏的部分。一旦结合了宽度、高度和object-fit:cover;
,一切都能完美地工作(前提是外部div有一个确定的宽度和高度来确定其在页面上的大小和位置)。