首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用background-size: cover或object-fit: cover按比例填充div的图像

不使用background-size: cover或object-fit: cover按比例填充div的图像
EN

Stack Overflow用户
提问于 2017-04-18 02:58:47
回答 2查看 846关注 0票数 2

我试图用图片填充一个div,同时保持它的纵横比。但我不想使用带有background-size: cover的背景图像,甚至不想使用object-fit: cover属性,我希望使用img标签得到它们的结果。

正如你在下面的代码中看到的,如果不使用object-fit: cover或background-size: cover,图像会被拉伸,这不是我想要的结果。

代码语言:javascript
复制
.post-thumbnail {
  width: 352px;
  height: 240px;
  overflow: hidden;
}

.post-thumbnail img {
  width: 100%;
  height: 100%;
}
代码语言:javascript
复制
<div class="post-thumbnail">
  <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKh0q0NzNKTmUA9q-uxaJIRx3pNYgbqzEdGW1cXFdIlZ_SlV-M">
</div>

在下面的代码中,由于object-fit: cover的原因,图像没有被拉伸,我希望在不使用这个属性的情况下得到同样的结果,因为它没有很好的兼容性。有人知道我该怎么做吗?

代码语言:javascript
复制
.post-thumbnail {
  width: 352px;
  height: 240px;
  overflow: hidden;
}

.post-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
代码语言:javascript
复制
<div class="post-thumbnail">
  <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKh0q0NzNKTmUA9q-uxaJIRx3pNYgbqzEdGW1cXFdIlZ_SlV-M">
</div>

EN

回答 2

Stack Overflow用户

发布于 2017-04-18 03:34:48

您可以使用clip() + position:absolute,或者使用垂直对齐和文本对齐的负边距:

代码语言:javascript
复制
.post-thumbnail {
  display:inline-block;
  width: 352px;
  height: 240px;
                           line-height:240px;
                           text-align:center;
  overflow: hidden;
}
.post-thumbnail.small {
  width: 40px;
  height: 60px;
  line-height: 60px;
}

.post-thumbnail img {
                             min-width: 100%;
                             min-height: 100%;
                             vertical-align:middle;
                             margin:-500px;
}

/* demo purpose to show what is being hidden;*/
.post-thumbnail {
  margin:50px;
  overflow: visible;
  box-shadow:0 0 0 50px rgba(200,200,200,0.5);
  border:solid blue;
}

.post-thumbnail img {
  position:relative;
  z-index:-1;
}
代码语言:javascript
复制
<div class="post-thumbnail">
  <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKh0q0NzNKTmUA9q-uxaJIRx3pNYgbqzEdGW1cXFdIlZ_SlV-M">
</div>
<div class="post-thumbnail small">
  <img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSKh0q0NzNKTmUA9q-uxaJIRx3pNYgbqzEdGW1cXFdIlZ_SlV-M">
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-04-18 03:02:02

您正在设置height属性和width属性,这样您就可以伸展页面。如果仅设置其中一个,则另一个将随之缩放。根据您拥有的图片类型和所需的方式,您需要设置高度和宽度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43457745

复制
相关文章

相似问题

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