css - srcset 中的 w-descriptors 必须使用 sizes 属性吗?

标签 css responsive-design srcset responsive-images

我已经阅读了许多关于使用 srcset 进行设备像素密度调整和艺术指导的文章:

The State of Responsive Images in 2015 by Paddi Macdonnell

srcset Part 2: The W descriptor and sizes attribute by Rich Finelli

这些都没有明确是否可以在没有sizes 属性的情况下使用 w-descriptors。大多数表示相反(w-descriptor 与 sizes 一起工作)

我自己的初步测试证实图像切换仅使用 w 描述符就可以工作

我发现,当使用 w 描述符根据宽度指定许多不同的图像时,浏览器将选择最适合受限空间的图像。

不需要其他代码。

在设计响应式网站时,这显然是令人困惑的,因为作为设计师,我只需要以下情况:

  1. 根据设备像素密度更改图像(对我有用。太棒了!)
  2. 根据可用宽度更改图像(艺术方向)(对我有用。太棒了!)

我想知道 sizes 是如何影响这次崩溃的。我非常感谢这是一项新功能。

最佳答案

sizes 严格 不是必需的,但如果您不使用它,那些 w 描述符将针对 进行解析sizes 的默认 值,即 100vw。换句话说,省略 sizes 等同于指定 sizes=100vw,这意味着图像旨在以全屏宽度呈现。如果这是您的意图,那很好,请随意忽略它,但指定它(以明确您的意图)可能会更好。

但是,如果您打算做任何其他事情,例如 ausi 的回答中的示例,其中元素设置为 200px,那么您最好指定 sizes 否则您会得到不好的结果。

我还没有阅读您链接到的教程,但以防万一他们没有说清楚:决定下载哪个源的算法是基于像素密度的,如 所示x 描述符。 w 描述符被转换为一个等价的x 描述符,方法是将它的值除以适当的sizes 值。它们存在的唯一原因是有时您不知道在创作时图像的最终布局大小(以像素为单位)。如果您知道最终大小,使用 x 可能更容易。

(虽然它不是为此目的而设计的,但如果您只是想避免通过数学运算来计算 x 描述符。在某些情况下,仅列出源宽度和布局宽度并让浏览器弄清楚事情会更容易。但是,如果您知道布局宽度,则应该为它很明确,所以你的比率是简单的整数无论如何 - 发送 1x 或 2x 图像比发送 .9x 图像并让浏览器放大它要好得多。)

关于css - srcset 中的 w-descriptors 必须使用 sizes 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35379385/

相关文章:

css - 如何使 Flexbox 元素大小相同

javascript - 如何在列布局中换行(并在需要时收缩)

html - 如何在屏幕上制作响应式 HTML5 视频中心,

javascript - 在 Safari 上获取响应式图片的 currentSrc

html - Bootstrap 响应断点的大小属性

css - 颜色值突出显示

html - 在 span 标签中显示 flex 和包装文本会在单词之间产生不需要的间距

html - 在html标签中正确使用 'hidden'属性

css - 响应式设计中按钮的垂直定位不会移动

image - 如何从Webpack中<picture>的srcset属性加载图片?