对于网站上的每个帖子,都会有一个标题图像。该图像的宽度为100vw,高度为300px。我想通过标签的srcset属性img或成熟的picture元素提供此图像的多个版本(此时不确定哪个版本,因此这个问题)。
这样做会很容易使用srcset属性:
<img srcset="lg.jpg 1200w, md.jpg 992w, sm.jpg 768w, xs.jpg 320w" sizes="100vw" src="xs.jpg">
当我想考虑不同的设备像素比率时,就会出现问题。首先,假设我拥有上面列出的所有图像的2x版本。3xsrcset
假设我有一部2x具有320px宽视口的手机(例如 iPhone 5)。我希望浏览器加载xs_2x.jpg. 同样,假设我有一个1x带宽屏显示器的桌面。我希望浏览器加载lg.jpg.
但是现在假设我有一部更大的手机,一个具有3x,414px宽视口的手机(即 iPhone 6 Plus)。在这种情况下,我希望我的浏览器能够加载sm_3x.jpg. 但是,我的浏览器可能会加载sm_2x.jpg,因为(1536 像素)的宽度比(2304 像素)sm_2x.jpg的宽度更接近手机的宽度(1242 像素)。sm_3x.jpg这将导致设备上的图像不300px高,从而打破网站的要求。
如何实现动态宽度、静态高度、具有 DPR 意识的响应式图像?
