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

保持动态加载图像的纵横比[副本]

弘阳德
2023-03-14

在我的网站上,用户可以上传图片。它们可以是各种大小的,但我想让它们装在相同高度的盒子里,这样它们就可以挨着放在一起,形成一个网格。图像应该在框中居中,保持其纵横比。我可以在CSS中这样做吗?我一直在尝试flexbox的东西,但我不能让它工作。

|-------------| 
|   imageim   |
|   ageimag   |
|   eimagei   |
|   mageima   |
|   geimage   |
|   imageim   |
|-------------|
|-------------|
|             |
|imageimageima|
|geimageimagei|
|mageimageimag|
|eimageimageim|
|             |
|-------------|

共有1个答案

施令秋
2023-03-14

下面是一个5 x 5的网格,可伸缩,可下载,使用flex

小提琴版本

.parent {
  height: 100vh;
  display: flex;
  flex-wrap: wrap;
}
.parent a {
  display: inline-block;
  height: calc(20% - 2px);
  width: calc(20% - 2px);
  background: #ddd no-repeat center center;
  background-size: contain;
  margin: 1px;
}
.parent a:nth-child(odd) {
  background-image: url(http://lorempixel.com/300/150/animals/3);
}
.parent a:nth-child(even) {
  background-image: url(http://lorempixel.com/150/300/animals/3);
}
<div class="parent">
  
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>

  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>  

  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>  

  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>  

  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/300/150/animals/3" download="filename"></a>
  <a href="http://lorempixel.com/150/300/animals/3" download="filename"></a>  

</div>
 类似资料:
  • 我有一个img元素,看起来像: 使用css: 现在,这意味着在保持纵横比的同时,将图像大小调整为最大高度:400px,或最大宽度:100%。虽然加载时图像会折叠到: 加载图像后,它向下推送文本: 我认为,由于图像的宽度和高度是内联的,浏览器应该已经知道它的纵横比了,图像就不会跳转了?我有什么遗漏吗? 我想要的只是图像元素,在图像源加载之前,与图像的长宽比相同。使布局不跳来跳去!

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

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

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

  • 我希望一个图像填充其容器宽度的100%,并且我希望它设置最大高度属性,所有这些都保持纵横比,但允许丢失图像的任何部分。 我知道可以用背景大小属性做类似的事情,但我想把它变成内联的 你知道我如何使用CSS实现这一点吗?还是javascript?

  • 更新:原来这是由于Chrome中的一个bug造成的。我仍在寻找解决办法。 我试图通过在元素上设置来在Chrome中使用延迟加载。我还使用以下方法来调整图像: 不幸的是,在图像实际加载之前显示的图像占位符在Chrome中有一个方形纵横比。它不遵循元素的/属性中设置的纵横比。这在以下情况下发生: 仅在Chrome中(不在Firefox 75中,Firefox 75也支持延迟加载)。 有没有一种解决方案