max-height
样式的图像似乎会根据其是否设置了height
和width
属性而呈现不同的效果。具有属性设置为图像真实宽度/高度的图像将保持其纵横比,但是没有属性的图像会遵循max-height
并显示为压缩状态。
.flex-parent {
display: flex;
max-height: 10vh;
}
<div class="flex-parent">
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Red_eyed_tree_frog_edit2.jpg/320px-Red_eyed_tree_frog_edit2.jpg">
<img width="320" height="240" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/be/Red_eyed_tree_frog_edit2.jpg/320px-Red_eyed_tree_frog_edit2.jpg">
</div>
我(显然是错误的)理解是,高度和宽度属性覆盖了加载图像时找到的固有高度和宽度,如果高度和宽度属性等于图像的尺寸,则在图像加载后应该没有渲染差异。
上下文是创建具有响应式图像的页面,其中每个图像
- 可以具有独特的原始尺寸 - 在加载时不会导致重新流动,即在初始呈现时保留正确的空间(因此使用高度和宽度属性) - 可以同时适合屏幕(因此我在CSS中弄乱了`vh`)
这只青蛙的图片来自于https://en.wikipedia.org/wiki/File:Red_eyed_tree_frog_edit2.jpg
max-height
分配给了父级 div,现在需要在flex-parent img:first-of-type
的 img 标签上分配该高度。我使用了first-of-type
来仅影响第一个img
。第二个图像具有height
和width
,因此它看起来具有正确的纵横比,但是第一个图像的渲染宽度不符合纵横比。 - LKG