我有一个图像,我想设置一个特定的宽度和高度(以像素为单位)
但是如果我使用css (width:150px; height:100px
)设置宽度和高度,图像就会被拉伸,而且可能很难看。
如何使用将图像填充到特定的大小,而不拉伸?
填充和拉伸图像示例:
原始图像:
拉伸图像:
填充图像:
请注意,在上面填充的图像示例中:首先,图像大小调整为150x255 (保持高宽比),然后,将裁剪为150x100.。
发布于 2015-03-17 15:25:31
您可以使用css属性object-fit
。(“设置应如何调整替换元素(如<img>
或<video>
__ )的内容大小,以适应其容器”)。
.cover {
object-fit: cover;
width: 50px;
height: 100px;
}
<img src="http://i.stack.imgur.com/2OrtT.jpg" class="cover" width="242" height="363" />
参见这里的示例
IE有一个多填充:https://github.com/anselmh/object-fit
与相关的: object-position
(指定元素内容在其框内的对齐方式)。
发布于 2012-08-01 16:17:42
如果您想要使用该图像作为CSS背景,有一个优雅的解决方案。只需在cover
CSS3属性中使用background-size
或contain
。
.container {
width: 150px;
height: 100px;
background-image: url("http://i.stack.imgur.com/2OrtT.jpg");
background-size: cover;
background-repeat: no-repeat;
background-position: 50% 50%;
}
<div class="container"></div>
而cover
会给你一个放大的图像,而contain
会给你一个缩小的图像。两者都将保留像素的高宽比。
http://jsfiddle.net/uTHqs/ (使用封面)
http://jsfiddle.net/HZ2FT/ (使用包含)
这种方法的优点是对托马斯·福克斯的快速向导。中的Retina显示很友好。
值得一提的是,浏览器对这两个属性不包括IE6-8。的支持
发布于 2017-03-24 13:47:01
基于@afonsoduarte接受答复.的增强
如果您使用的是引导
有三个不同之处:
width:100%
。
如果您使用的是引导,并且希望映像扩展所有可用宽度,这将很有帮助。height
属性是可选的,您可以根据需要删除/保留它
.cover { object-fit: cover;宽度: 100%;/*height: 300 it;可选,您可以删除它,但在我的示例中,它是很好的*/ }height
元素上提供image
和width
属性,因为它们将被样式覆盖。
所以写这样的东西就足够了。https://stackoverflow.com/questions/11757537
复制相似问题