html - 调整图像大小的最佳方法,% 与最大宽度
问题描述
我正在尝试创建一个布局,其中图像可以根据视口宽度增长和缩小。当视口中只能容纳 2 张图像时,我将它们的宽度分别设置为 50%。当视口中只能容纳 3 张图像时,我给它们每张的宽度为 33.33%。当视口中只能容纳 4 张图像时,我给它们每张的宽度为 25%。我基本上将图像数量除以 100。但是在某些时候,例如,当我连续拍摄 6 张图像时,它们每张将占 16.66%,等等。
我目前正在使用 flexbox 并使用 flex-wrap 设置进行换行,因此如果视口变小,它们可以换行。我还使用媒体查询来根据视口大小更改图像的宽度。
但我不太喜欢我正在使用的这种方法,因为如果所有图像的宽度都不是整数,宽度是十进制数,那么会有一些额外的空间使我的布局看起来不统一。
我可以使用最大宽度而不是百分比来实现相同的布局吗?
例如,当屏幕上只能容纳 2 张图像时,我给它的最大宽度为 300 像素。例如,当屏幕上可以容纳 3 张图像时,我给它的最大宽度为 200 像素。这样,图像将放大直到达到最大宽度,然后媒体查询将启动,最大宽度将发生变化。
我想要的这种布局的最佳方法是什么?
我想让图像具有响应性,但意识到给它们一个百分比只会使图像在增长时看起来像素化......
1-我是否在图像上使用百分比或最大宽度,以便它们可以根据视口改变大小。
2- 我使用哪种响应式图像技术?所以当它们的宽度增加时,图像看起来不会像素化......
解决方案
由于您想在不同的设备/视口宽度中提供相同的图像,因此使用本MDN 指南中描述的一组图像是一个很好的策略。
确保您的移动布局不包括显示一组 12 个或更多图像(宽度约为 17%)。但相反,桌面上有 12 个或更多图像,以及 1 个(移动电话)或 4 个(如果是平板设备)。
我不认为你需要max-width
一个合适width
的%
图像容器和:
img {
width: 100%;
height: auto;
}
足够的。例如:
.container {
width: 100%;
display: flex;
align-items: stretch;
align-content: space-evenly;
justify-content: space-evenly;
flex-flow: row;
}
.container div {
width: 50%;
}
.responsive img {
width: 100%;
object-fit: contain;
height: auto;
}
<div class="container">
<div>
<picture class="responsive">
<source media="(max-width:1024px)" srcset="https://picsum.photos/id/238/1024/600">
<source media="(max-width:650px)" srcset="https://picsum.photos/seed/picsum/650/300">
<source media="(max-width:465px)" srcset="https://picsum.photos/seed/picsum/465/300">
<img src="https://picsum.photos/id/247/1200/800" alt="A good friend">
</picture>
</div>
<div>
<picture class="responsive">
<source media="(max-width:1024px)" srcset="https://picsum.photos/id/239/1024/600">
<source media="(max-width:650px)" srcset="https://picsum.photos/seed/picsum/650/300">
<source media="(max-width:465px)" srcset="https://picsum.photos/seed/picsum/465/300">
<img src="https://picsum.photos/id/237/1200/800" alt="A good friend">
</picture>
</div>
</div>
PS:查看代码片段时尝试更改视口宽度。
推荐阅读
- c# - image.fromfile() 不能使用相对路径“~/folder/file”
- ios - Swift - 处理 UICollectionViewCell Tap
- r - ggplot 的重新排序不正确
- c# - C# 中是否有任何内置算法或库来计算概率函数?
- java - 在java中复制二维数组
- python - 取Python中数据透视表列之间的差异
- google-cloud-platform - 谷歌云平台自定义预测例程
- python - 如何根据基于另一个数据框的条件提取熊猫数据框的行
- ios - Flutter Spinkit 进度指示器
- elasticsearch - 创建没有映射的 Elasticsearch 模板