浏览器应如何解释在srcset中出现两次的相同路径

问题描述

对于出现相同像素(或相同尺寸图像)的路径具有不同像素密度描述符的情况,规范有何说明?

以下示例在桌面版(Windows)Firefox 82.0b2和Chrome 85.0.4183.121中呈现不同。图片以FF原生缩放,而Chrome则缩小一半

<html><head></head>
<body>
  <img src="testpicture.jpg" srcset="testpicture.jpg 2x">
</body>
</html>

我问的原因是因为我经常使用的商业CMS使用此类输出。为了鼓励他们避免这种情况,我需要澄清。在此CMS中,渲染的内容在FF中几乎可以正常工作,但是在Chrome中,渲染有时会意外缩放,或者根本没有出现某些图像内容(可能与不同大小的缓存可用性有关)。


更新:由于与缓存相关的内部逻辑,浏览器选择错误的变体时,很有可能是chromium issue。但是,直到它最终解决,我才不想发布自己的答案

解决方法

def npc_one_dialogue(): P = font.render('P',True,black) r = font.render('r',black) o = font.render('o',black) f = font.render('f',black) e = font.render('e',black) s = font.render('s',black) scr.blit(P,(110,420)) time.sleep(0.2) scr.blit(r,(140,420)) time.sleep(0.2) scr.blit(o,(170,420)) time.sleep(0.2) scr.blit(f,(200,420)) time.sleep(0.2) scr.blit(e,(230,420)) time.sleep(0.2) scr.blit(s,(260,(290,(320,(350,420)) 属性是启用响应图像的功能。具体来说,srcset向浏览器提示了可用的分辨率图像。在您的情况下,只有在定义时才提示具有两倍(2x)分辨率的一张图像(testpicture.jpg)。但是由于只有一个定义,所以srcset属性不会做任何事情,并且可以被忽略。

完整的示例如下:

srcset

请查看image element的MDN文档及其在responsive image上的指南,以了解更多详细信息。