Html 无法使srcset跨设备工作
我有一个主标题图像:Html 无法使srcset跨设备工作,html,responsive-design,srcset,Html,Responsive Design,Srcset,我有一个主标题图像: <img class="hero" src="/assets/images/Food-Spread-500x167.jpg" alt="banner image" sizes="(min-width: 992px) 80vw, 100vw" srcset="/assets/images/Food-Spread-500x167.jpg 500w, /assets/images/Food-Spread-768x256.jpg 768w, /
<img class="hero" src="/assets/images/Food-Spread-500x167.jpg" alt="banner image" sizes="(min-width: 992px) 80vw, 100vw"
srcset="/assets/images/Food-Spread-500x167.jpg 500w,
/assets/images/Food-Spread-768x256.jpg 768w,
/assets/images/Food-Spread-992x331.jpg 992w,
/assets/images/Food-Spread-1200x400.jpg 1200w">
我面临的困难有两方面:
x
描述符的srcset
,但不支持w
或大小
。发生的情况是,size
属性被忽略,然后它要么选择srcset
中的第一个候选项作为“1x”,要么忽略srcset
中的所有候选项(取决于Safari的版本),并改为使用src
。因此,您可能会将500x167图像渲染为500 CSS px宽,这会溢出(320 CSS px宽)视口
您可以做两件事来解决此问题(如果愿意,您可以同时做这两件事):
- 使用picturefill,它将添加对
和w
的支持,并执行内部大小调整size
- 使用CSS设置宽度:
.hero{width:100%} @媒体(最小宽度:992px){.hero{width:80%}
我不明白你在第(2)项中的问题。你想让iPhone下载一张“2x”的图像,对吗?它应该选择一张更大的图像,但它应该再缩小一次。哪个iOS版本?你在用picturefill吗?哪个版本?嗯,Iphone是640px…屏幕的实际像素宽度是640px。浏览器以320px的速度呈现网页,那么为什么不将imgae设置为320px呢?
srcset
属性只是选择最适合的图像,它不适合你。由于您的屏幕是640px,它会将壁橱图像抓取到640px,因此您的工作是通过css将其缩小以适合浏览器320px。此外,由于一些早期的srcset
实现在不理解描述符时选择srcset
中的第一个候选对象,我建议将您在src
中使用的候选者放在srcset
的第一位,至少如果您选择不使用picturefill,这样他们就可以得到“正确”的回退图像。