响应式图片尺寸生成 - srcset/sizes
为同一图片的不同分辨率版本自动生成srcset和sizes属性代码。
UD5工具箱
{w} 表示宽度占位符,{h} 表示高度占位符Loading...
Loading...
Loading...
srcset 是 HTML <img> 标签的属性,允许您为不同屏幕宽度提供不同尺寸的图片。它包含一组图片URL及其对应的宽度描述符(如 image-640w.jpg 640w)。
浏览器会根据设备的屏幕宽度、像素密度以及 sizes 属性的值,自动选择最合适的图片进行加载。这意味着手机不会下载为桌面准备的大图,从而节省带宽、提升加载速度。
最佳实践: 始终配合 sizes 属性使用 w 描述符(而非 x 描述符),让浏览器做出最优选择。
w 描述符(如 640w):指定图片的实际宽度(像素)。浏览器结合 sizes 属性和屏幕DPR来决定加载哪张图。这是现代推荐做法。
x 描述符(如 2x):指定图片适用于的像素密度倍数。例如 2x 用于Retina屏幕。这种方式不够灵活,无法根据实际布局宽度优化。
推荐: 使用 w 描述符 + sizes,因为它同时考虑了视口宽度和像素密度,能做出更精确的选择。
选择断点取决于您的布局和用户设备分布:
通常3-5个断点就能覆盖90%以上的场景。过多的断点会增加维护成本,过少则无法充分优化。建议分析您的用户设备分布数据来做决策。
img + srcset:用于同一图片的不同尺寸版本(分辨率切换)。浏览器根据屏幕条件自动选择。这是最常见的响应式图片方案。
picture 元素:用于"艺术指导"场景——在不同断点显示不同的图片(如不同裁剪比例、不同构图)。也常用于提供不同格式(WebP、AVIF)的备选。
简单记忆:同一张图不同尺寸→srcset;不同图不同断点→picture。
sizes 告诉浏览器图片在页面布局中实际占据的宽度。例如 sizes="(max-width: 768px) 100vw, 50vw" 表示:屏幕≤768px时图片占满全宽,否则占半宽。
浏览器使用这个信息,结合当前视口宽度和DPR,计算出需要的像素宽度,然后从srcset中选择最接近的图片。如果没有sizes,浏览器默认按100vw处理,可能会加载过大的图片。
提示: sizes可以使用vw、px、calc()等CSS单位,非常灵活。
使用 <picture> 元素可以提供多种格式的备选:
<picture>
<source srcset="img.avif" type="image/avif">
<source srcset="img.webp" type="image/webp">
<img src="img.jpg" alt="描述">
</picture>
浏览器会从上到下选择第一个支持的格式。WebP 可减少约25-35%文件大小,AVIF 可减少约50%。两者结合srcset可实现最佳性能和兼容性。
srcset 和 sizes 获得所有现代浏览器的良好支持,包括 Chrome、Firefox、Safari、Edge 的最近版本。全球覆盖率超过97%。
对于不支持的旧浏览器(如IE11),它们会回退到 src 属性加载默认图片,不会导致图片无法显示。这是一种优雅降级的方案。
几种验证方法:
currentSrc 属性(JavaScript可读取)为同一图片的不同分辨率版本自动生成srcset和sizes属性代码。
运行Gray-Scott反应扩散模型,生成类似动物毛皮或化学斑图的复杂纹理。
调整粒子数量、形状、颜色、连线等参数,实时预览粒子背景效果,导出 Particles.js 配置 JSON。
生成简单数字或字母验证码图片,带干扰线和噪点,适合前端原型测试,不依赖服务端。
上传图片,记录用户在图片上的点击位置,生成点击热度分布伪彩图。
通过 Canvas 生成任意宽高的占位图,显示尺寸文字,可复制 Base64 或使用 Blob URL 模拟服务。
运行 Gray-Scott 反应扩散模型,调节参数生成斑点、条纹等生物斑图。
精确设置宽高、背景底色、文字内容及字号,生成完美占位图并下载。
选择本地音频文件,解绘制完整的静态波形图,便于观察响度变化。
输入键值对,自动生成 Kubernetes ConfigMap YAML,支持文字和多行数据。
获取设备上所有可用的语音合成音色,试听并比较不同语言和嗓音。
上传一个主图标,同时生成16x16至128x128的所有标准浏览器扩展图标尺寸。
动画展示环形/循环缓冲区的Enqueue、Dequeue操作以及头尾指针的移动逻辑。
Alt+点击取样,然后在其他区域绘制,复制取样点的像素,用于去除瑕疵。
编写或粘贴 HTML 邮件代码,通过免费邮件发送 API 发送一份测试邮件给自己检查效果。
制作具有真实按下突起感的3D拟物按钮,可调整颜色和阴影深度。
填写事件标题、时间、地点,生成标准的.ics日历文件,可添加到日历应用。
输入文本,使用Web Speech API朗读,并同步高亮当前读到的单词。
填入头像、用户名、内容和点赞数,生成看起来像真实推文截图的图片。
提供名片模板,填写信息并调整样式,实时预览名片效果,可导出为图片下载。
拖拽控制点创建不规则、有机感的圆角形状,生成对应的 border-radius 代码。
创建带有弹性动画的通知数字徽章或红点,生成对应的HTML/CSS代码。
编写DOT语言描述节点与边,前端渲染为有向图/无向图,辅助关系梳理。
上传图片快速生成圆形头像,支持调整缩放和位置,输出透明背景圆形PNG头像,适用于社交平台。
输入宽高和文字,纯前端生成相应的占位图片,可下载用于网页原型填充。
一键将图片拆分为红、绿、蓝和Alpha通道的独立灰度图,辅助修图分析。
生成对称的纸绣几何图案点位图,供打印后扎孔刺绣。
上传图片,利用Tesseract.js离线识别其中的英文或简单文字并复制。
输入目标网址和要突出显示的文本,生成带 `#:~:text=` 的链接,精确指向页面内容。
使用Canvas API实现的图片压缩工具,调整质量压缩JPEG/PNG图片,减小文件体积,本地处理保护隐私。