<picture>
元素已在Chrome中使用了一年多,但我无法获得sizes
的{{1}}属性。
以下内容显示媒体查询中断点的正确图像,但图像以默认大小显示,而不是使用<source>
属性中指定的值。
sizes
我错过了什么吗?
答案 0 :(得分:3)
使用w
属性时需要使用sizes
描述符,否则无效。
错误:元素源上属性srcset的错误值img1.jpg:没有为图像img1.jpg指定宽度。 (当存在sizes属性时,所有图像候选字符串都必须指定宽度。)
所以你的HTML应该是:
<picture>
<source media="(min-width: 600px)"
sizes="50vw"
srcset="img1.jpg 300w">
<source media="(min-width: 400px)"
sizes="90vw"
srcset="img2.jpg 200w">
<img src="img3.jpg" alt="my image">
</picture>
虽然如果每个source
只有一个候选人,您可以使用CSS代替针对不同断点适当调整图片大小,并跳过sizes
/ w
。 sizes
的主要功能是向浏览器提示要加载srcset
中的哪些资源;它影响内在大小更多的是副作用。