首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CSS图像大小,如何填充,但不拉伸?

CSS图像大小,如何填充,但不拉伸?
EN

Stack Overflow用户
提问于 2012-08-01 10:43:22
回答 19查看 1.1M关注 0票数 529

我有一个图像,我想设置一个特定的宽度和高度(以像素为单位)

但是如果我使用css (width:150px; height:100px)设置宽度和高度,图像就会被拉伸,而且可能很难看。

如何使用图像填充到特定的大小,而不拉伸

填充和拉伸图像示例:

原始图像:

拉伸图像:

填充图像:

请注意,在上面填充的图像示例中:首先,图像大小调整为150x255 (保持高宽比),然后,将裁剪为150x100.

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2015-03-17 15:25:31

您可以使用css属性object-fit。(“设置应如何调整替换元素(如<img><video>__ )的内容大小,以适应其容器”)。

代码语言:javascript
运行
复制
.cover {
  object-fit: cover;
  width: 50px;
  height: 100px;
}
代码语言:javascript
运行
复制
<img src="http://i.stack.imgur.com/2OrtT.jpg" class="cover" width="242" height="363" />

参见这里的示例

IE有一个多填充:https://github.com/anselmh/object-fit

相关的: object-position (指定元素内容在其框内的对齐方式)。

票数 783
EN

Stack Overflow用户

发布于 2012-08-01 16:17:42

如果您想要使用该图像作为CSS背景,有一个优雅的解决方案。只需在cover CSS3属性中使用background-sizecontain

代码语言:javascript
运行
复制
.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%;
}
代码语言:javascript
运行
复制
<div class="container"></div>​

cover会给你一个放大的图像,而contain会给你一个缩小的图像。两者都将保留像素的高宽比。

http://jsfiddle.net/uTHqs/ (使用封面)

http://jsfiddle.net/HZ2FT/ (使用包含)

这种方法的优点是对托马斯·福克斯的快速向导。中的Retina显示很友好。

值得一提的是,浏览器对这两个属性不包括IE6-8。的支持

票数 430
EN

Stack Overflow用户

发布于 2017-03-24 13:47:01

基于@afonsoduarte接受答复.增强

如果您使用的是引导

有三个不同之处:

  1. 在样式上提供width:100% 如果您使用的是引导,并且希望映像扩展所有可用宽度,这将很有帮助。
  2. 指定height属性是可选的,您可以根据需要删除/保留它 .cover { object-fit: cover;宽度: 100%;/*height: 300 it;可选,您可以删除它,但在我的示例中,它是很好的*/ }
  3. 顺便说一句,不需要在height元素上提供imagewidth属性,因为它们将被样式覆盖。 所以写这样的东西就足够了。
票数 88
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11757537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档