当前位置: 首页 > 知识库问答 >
问题:

强制图像匹配并保持纵横比

索卓
2023-03-14

我希望一个图像填充其容器宽度的100%,并且我希望它设置最大高度属性,所有这些都保持纵横比,但允许丢失图像的任何部分。

img {
   max-height:200px;
   width:100%;
}

我知道可以用背景大小属性做类似的事情,但我想把它变成内联的

你知道我如何使用CSS实现这一点吗?还是javascript

共有2个答案

桂嘉年
2023-03-14

您可以使用css flex属性来实现这一点。请参见下面的代码

.img-container {
  width: 150px;
  height: 150px;
  border: 2px solid red;
  justify-content: center;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  
}
.img-container .img-to-fit {
  flex: 1;
  height: 100%;
}
<div class="img-container">
  <img class="img-to-fit" src="https://images.pexels.com/photos/8633/nature-tree-green-pine.jpg" />
</div>
阴雪风
2023-03-14

您可以尝试CSS3对象适配,并查看浏览器支持表。

CSS3对象拟合指定对象(图像或视频)应如何适应其方框的方法。对象拟合选项包括“包含”(根据纵横比拟合)、“填充”(拉伸对象以填充)和“覆盖”(溢出框但保持比例),其中对象位置允许像背景图像一样重新定位对象。

JSFIDDLE演示

.container {
  width: 200px; /*any size*/
  height: 200px; /*any size*/
}

.object-fit-cover {
  width: 100%;
  height: 100%;
  object-fit: cover; /*magic*/
}
<div class="container">
  <img class="object-fit-cover" src="https://i.stack.imgur.com/UJ3pb.jpg">
</div>
 类似资料:
  • 我正在处理图像,我遇到了一个关于纵横比的问题。 可以看到,和已经指定。我为图像添加了CSS规则: 但是对于,我接收到和。如何设置图像的大小,同时保持他们的纵横比。

  • 我在响应式站点上设置了flexSlider。我正在创建的滑块可以拍摄横向和纵向图像。我设置了,以便调整高度以适应图像。 在最大的媒体查询中,flexslider容器的宽度为750px。这对于横向图像很好,但纵向图像太大了。肖像图像的宽度设置为与容器相同的大小-750px宽,因此高度至少是容器宽度的两倍,因此如果不滚动,则无法查看整个图像。 在css中,我尝试设置最大高度:750px,这解决了高度问

  • 使用CSS flex box模型,如何强制图像保持其纵横比? JS小提琴:http://jsfiddle.net/xLc2Le0k/2/ 请注意,为了填充容器的宽度,图像会拉伸或收缩。这很好,但是我们也能让它拉伸或收缩高度来保持图像比例吗? HTML CSS

  • 编辑:我应该提到的是,我知道纵横比公式:原始高度/原始宽度x新宽度=新高度,但是,我不知道如何正确地使用它,以我的优势。

  • 我有一个宽度为1900和高度为1000的图像,我使用的是和但我希望div高度与图像更改的高度相同。 示例: 在1366个屏幕中,图像将缩小尺寸以适应屏幕大小(宽度100%),因此,图像高度也将减小,因此我想获得该高度。 我试图做的是: HTML: CSS: 问题:vw是用滚动条宽度计算的,我想要没有,我可以使用宽度%而不是vw吗? 我接受别人的想法来做这件事,但我更喜欢使用CSS。

  • 问题内容: 我有一个48x48的div,里面有一个img元素,我想将它放到div中而不丢失任何部分,同时保持比例,是否可以使用html和css实现? 问题答案: 如果您在编写CSS时不知道图像的尺寸,则需要一些JavaScript来防止裁剪。 HTML和JavaScript 的CSS 如果您使用JavaScript库,则可能要利用它。