对于网站上的每个帖子,都会有一个标题图像。该图像的宽度为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
版本。3x
srcset
假设我有一部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 意识的响应式图像?