该 srcset
的属性 img
element帮助作者调整其网站以进行高分辨率显示,以便能够使用代表相同图像的不同资源。
图片元素帮助作者基于媒体查询和/或对特定图像格式的支持来控制用户代理向用户呈现哪个图像资源。
这两者都使作者能够根据设备分辨率控制显示图像;从而使图像响应。那么它们之间的主要区别是什么?
我确实找到了一些例子 picture
元件 草案,但仍然无法理解差异。以下是示例:
运用 srcset
属性:
<img src="pic1x.jpg" srcset="pic2x.jpg 2x, pic4x.jpg 4x"
alt="A rad wolf" width="500" height="500">
运用 picture
元件:
<picture>
<source media="(min-width: 45em)" srcset="large.jpg">
<source media="(min-width: 18em)" srcset="med.jpg">
<img src="small.jpg" alt="The president giving an award.">
</picture>
都 srcset
和 picture
大致相同的事情,但有一个微妙的区别:
picture
指示浏览器应该使用什么图像,而
srcset
给浏览器一个选择。可以使用很多东西来选择此选项,例如视口大小,用户首选项,网络条件等。希望将来浏览器在选择合适的图像时会变得更聪明,更智能。
支持 srcset
非常好 几乎所有当前浏览器 或多或少地支持它。情况与 picture
元素是一个 有点糟糕。
都 srcset
和 picture
大致相同的事情,但有一个微妙的区别:
picture
指示浏览器应该使用什么图像,而
srcset
给浏览器一个选择。可以使用很多东西来选择此选项,例如视口大小,用户首选项,网络条件等。希望将来浏览器在选择合适的图像时会变得更聪明,更智能。
支持 srcset
非常好 几乎所有当前浏览器 或多或少地支持它。情况与 picture
元素是一个 有点糟糕。
2017年更新
从 http://usecases.responsiveimages.org/:
该 srcset
属性
允许作者定义各种图像资源和“提示”,以帮助用户代理确定要显示的最合适的图像源。给定一组图像资源,用户代理具有 选项 遵循或覆盖作者的声明,以根据显示密度,连接类型,用户首选项等标准优化用户体验。
该 picture
元件
在srcset的基础上,该规范定义了一种声明性解决方案,用于基于不同的特征(例如,格式,分辨率,方向等)对图像的多个版本进行分组。这允许用户代理基于用户代理的“环境条件”选择最佳图像以呈现给最终用户,同时还提供“艺术直接”图像的能力。
环境条件是CSS媒体 特征 (例如,像素密度,方向,最大宽度)和CSS媒体 类型 (例如,打印,屏幕)。
艺术指导意味着将图像转换为最佳匹配可用空间。例如,在房子前面以狗为特色的风景图像可以保留在典型的桌面屏幕上,但在狭窄的人像移动屏幕上,我们可能想要裁剪房屋的侧面并专注于狗。
picture
使用CSS媒体查询,而 srcset
使用 图像候选字符串:宽度描述符,例如 1024w
,或像素密度描述符,例如 2x
。
这两种规范在当前浏览器中得到广泛支持,IE,旧Android浏览器和Opera mini除外。 srcset
过时的浏览器,即Safari 7到9.2,可以更好地支持 http://caniuse.com/#feat=srcset。
这种关系在第1.3节中描述 关系到 srcset
的 图片元素 草案。描述有点模糊,因为它没有说明它与之比较的内容,但是出于实际目的,W3C编辑的草案 srcset属性 描述了设计 srcset
作为一个单独的属性(与其在提议中的不同角色相反) picture
元件)。
这两份草案旨在以不同的方式解决同样的问题。该 srcset
使用属性可以指定带有特殊符号的图像URL列表,用于指示它们的宽度或像素密度。该 picture
element使用CSS媒体查询用于相同目的。