GoogleChrome版本40 srcset属性问题

Google Chrome version 40 srcset attribute problems

我在 Chrome 40.0.2214.91

的 img 标签(响应式图片)上看到了很多与 srcset 属性不一致的地方

在我更新到 Chrome v40(我在 ~39)之前,srcset 属性工作正常并且会在浏览器调整大小时交换图像。现在,有时,如果我将浏览器设置为所需的宽度然后刷新页面,则会显示较小版本的图像。其他时候它不会工作。

正在测试 jsbin: http://jsbin.com/hulaconake/1/edit?html,output

我有的图片标签:

<img srcset="http://placehold.it/300x200 300w, http://placehold.it/500x400 500w">

我还在另一个环境中使用非 Placehold.it 图像进行测试,并使用 Picturefill.js http://scottjehl.github.io/picturefill/

我在 FF 或 Safari(都使用 picturefill)中没有遇到任何问题。

iOS Chrome也有类似的问题。

我的语法有误吗?是不是发生了什么我不知道的事情?

这是一个功能,不是错误。 Chrome 不会切换大小,因为 Chrome 缓存中已经有更大的图像,因此无需下载相同图像的新数据。

如果您想使用不同的图片或相同的图片进行不同的裁剪,请使用图片元素。

响应式图片在技术上可以区分为两种类型。

  • 带有源描述符的 srcset(让浏览器根据屏幕 size/resolution、带宽…选择正确的图像):
    • 密度描述符 (x)(对于静态图像大小,Retina 与正常分辨率)
    • 宽度描述符 (w) 和相应的尺寸属性(用于灵活、响应式/自适应图像(自动还包括 Retina 优化)
  • 以及带有 source[media] 子元素的 picture 元素(使作者能够控制浏览器根据特定的媒体查询选择什么 srcset)

所以 img[srcset] 用于分辨率切换,picture 用于不同图像对您的设计做出反应