srcset 和 <img> sizes
2023年高效且有主见的图像指南
查看侧边栏了解深入探讨。这是快速参考,用于升级那些<img>
标签,以适应现代设备的各种尺寸和像素密度。你应该了解像素 != 像素,并且devicePixelRatio
更可能接近3.875而不是1:1。现代手机为了可读性(在CSS像素中)假装宽320-428px,但每个CSS像素有多个设备像素。
如果你的图像大小从不改变,无论你多么窄化浏览器窗口,你应该使用密度描述符代替。这通常适用于标志、图标和按钮。
你知道你的断点是什么吗?你将需要这些数字来微调下面的解决方案——至少需要主内容区域停止增长的视口宽度断点。
简易方法
<img src="img.jpg?w=480"
srcset="img.jpg?format=webp&w=480 480w,
img.jpg?format=webp&w=800 800w,
img.jpg?format=webp&w=1200 1200w,
img.jpg?format=webp&w=1600 1600w,
img.jpg?format=webp&w=2000 2000w"
sizes="(max-width: 700px) 100vw, 800px" alt="骑自行车的狗" />
<!-- 我们假设你在700px处有一个断点。
在此视口宽度以下,该图像占用100%的宽度,但当视口更大时,图像限制为800 CSS像素 -->
<!-- 假设你使用的是符合RIAPI的图像服务器,比如Imageflow。
即时生成图像变体对于开发人员的理智至关重要。 -->