问题 当我们有srcset属性时,为什么我们需要picture元素?


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>

12631
2018-06-10 04:39


起源



答案:


srcset 和 picture 大致相同的事情,但有一个微妙的区别:

  • picture 指示浏览器应该使用什么图像,而
  • srcset 给浏览器一个选择。可以使用很多东西来选择此选项,例如视口大小,用户首选项,网络条件等。希望将来浏览器在选择合适的图像时会变得更聪明,更智能。

支持 srcset 非常好 几乎所有当前浏览器 或多或少地支持它。情况与 picture 元素是一个 有点糟糕


10
2017-08-29 10:41



这需要更新。截至2016年12月,对两者的支持几乎同样好 - IE也不支持。 - Dan Dascalescu


答案:


srcset 和 picture 大致相同的事情,但有一个微妙的区别:

  • picture 指示浏览器应该使用什么图像,而
  • srcset 给浏览器一个选择。可以使用很多东西来选择此选项,例如视口大小,用户首选项,网络条件等。希望将来浏览器在选择合适的图像时会变得更聪明,更智能。

支持 srcset 非常好 几乎所有当前浏览器 或多或少地支持它。情况与 picture 元素是一个 有点糟糕


10
2017-08-29 10:41



这需要更新。截至2016年12月,对两者的支持几乎同样好 - IE也不支持。 - Dan Dascalescu


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


4
2017-12-16 10:06





这种关系在第1.3节中描述 关系到 srcset 的 图片元素 草案。描述有点模糊,因为它没有说明它与之比较的内容,但是出于实际目的,W3C编辑的草案 srcset属性 描述了设计 srcset 作为一个单独的属性(与其在提议中的不同角色相反) picture 元件)。

这两份草案旨在以不同的方式解决同样的问题。该 srcset 使用属性可以指定带有特殊符号的图像URL列表,用于指示它们的宽度或像素密度。该 picture element使用CSS媒体查询用于相同目的。


2
2018-06-10 05:20