css - 从宽度计算图像高度

标签 css image height calc

我有宽度未知的图像(父级的 100%,父级大小未知 - 响应),不同大小的图像,我需要为所有这些图像设置相同的高度。

我准备了一个小的颂歌片段来向您展示我当前的代码。

#blog {margin: 0; padding: 0;}
#blog li {float: left; width: 48%; list-style: none;}
#blog li:nth-child(2n) {float: right;}
#blog li:nth-child(2n+1) {clear: both;}

#blog li img {display: block; width: 100%; height: calc(100% / 2.5);} /* 2.5 is width/height ratio */
<ul id=blog>
<li><img src=https://picsum.photos/500/300>...</li>
<li><img src=https://picsum.photos/700/250>...</li>
<li><img src=https://picsum.photos/200/100>...</li>
<li><img src=https://picsum.photos/100/80>...</li>
<li><img src=https://picsum.photos/600/540>...</li>
<li><img src=https://picsum.photos/300/300>...</li>
<li><img src=https://picsum.photos/300/300>...</li>
</ul>

是否可以在纯 CSS 中为所有图像设置确切的未知高度,或者我需要在 JS 中计算它?

注意:我无法调整这些图像的大小,在这种情况下(不正确的宽度/高度比)可以接受一点变形。

谢谢。

最佳答案

您可以尝试使用 flexbox,您可以在其中使用百分比值和高度,并且每一行的高度都相同,而不是所有行:

#blog {
  margin: 0;
  padding: 0;
  display:flex;
  flex-wrap:wrap;
}

#blog li {
  width: 48%;
  margin:0 1%;
  list-style:none;
}
img {
 width:100%;
 height:80%;
 /* object-fit: cover; in case you want to keep the ratio and cut a part of the image*/
}
<ul id=blog>
  <li><img src=https://picsum.photos/500/300>...</li>
  <li><img src=https://picsum.photos/700/250>...</li>
  <li><img src=https://picsum.photos/200/100>...</li>
  <li><img src=https://picsum.photos/100/80>...</li>
  <li><img src=https://picsum.photos/600/540>...</li>
  <li><img src=https://picsum.photos/300/300>...</li>
  <li><img src=https://picsum.photos/300/300>...</li>
</ul>

关于css - 从宽度计算图像高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54053111/

相关文章:

jquery - 如果 div 具有高度或存在类,则添加该类

html - 为什么我的引导重叠?

image - ROS ImagePtr 和图像编译混淆

html - 如何降低元素从上到下的高度而不是默认的从下到上?

jquery - 将变量传递给 jQuery CSS 值以计算高度

css - 针对一个 HTML 元素的多个类使用什么 CSS 选择器?

python - 在 css 中突出显示当前打开的类别选项卡的链接

android 图像被文本包裹

image - 抵抗各种攻击的图像隐写术的最佳实践是什么?

android动态设置listview高度