响应式全宽图像和srcset



我有一个网站,我想要一些全宽图像(它们将被垂直裁剪,以获得视差效果(。我想我已经读了很多关于srcsetsizes的文章,并尝试了一些事情,但我不知道(a(我是否需要使用";尺寸";(b(尤其是在没有sizes的情况下,浏览器将如何选择加载哪个图像。

对于具体性,这里有一个图像规范:

<img src="/images/full/2c8n.jpg" srcset="
/images/320/2c8n.jpg 320w,
/images/640/2c8n.jpg 640w,
/images/1024/2c8n.jpg 1024w,
/images/full/2c8n.jpg">

这是在一个全宽容器div中,因此图像应该逐边显示。

我希望它能在移动设备上加载最小的一个,在大型台式机上加载最大的一个(/images/full(,但这似乎没有实现。我已经看到也可以使用x样式,但我不确定如何选择每个比例因子使用哪个图像,如果这是正确的方法的话。你知道我做错了什么吗?正确的方法是什么吗?

文档对sizes属性非常不清楚。我能够确定的是,它只影响渲染图像的大小,而不是图像选择。因此,sizes="(max-width: 500px) 50vw, 100vw"告诉浏览器:

  1. 如果视口宽达500px,则在视口的50%处渲染图像(50vw(
  2. 如果视口为501px或更大,则以视口的100%(100vw(渲染图像

对于srcset属性,浏览器会查看图像列表,猜测应该填充的插槽大小,然后选择下一个更大的大小。因此,根据您的要求,这就是它选择使用哪个文件的方式:

  1. 视口宽度最高可达319px->images/320/2c8n.jpg
  2. VW 320像素至639像素->images/640/2c8n.jpg
  3. VW 640至1023->images/1024/2c8n.jpg
  4. VW 1024及更大->images/full/2c8n.jpg

我也读过,但还没有验证,它使用了它发现的第一个符合srcsrcset标签之间要求的图像。属性的顺序可能会有所不同。再次阅读但未验证。

最新更新