为什么设置了dpr后图片在高DPR设备上还是模糊?
我在做移动端适配时,给图片设置了dpr相关的CSS属性,但发现高分辨率设备(比如iPhone 12)上的图片依然显示模糊。我用的是以下写法:
img {
width: 200px;
height: auto;
image-orientation: 180deg;
image-rendering: -webkit-optimize-contrast;
}
同时设置了viewport meta标签:<meta name="viewport" content="width=device-width, initial-scale=1">。测试时发现,虽然图片尺寸对了,但在高DPR设备上像素感明显,好像没按设备像素比加载高清版本。有没有可能是image-rendering属性干扰了渲染?或者需要配合srcset属性才能生效?
srcset属性来指定不同分辨率的图片。你可以这样写:
这样浏览器就会根据设备的DPR自动选择合适的图片了。至于
image-rendering,它主要是控制图片缩放时的质量,跟DPR没关系,所以这里用不上。另外提醒一下,确保你的高分辨率图片真的是对应尺寸的2倍或3倍大小,不然还是会模糊。比如说,如果正常图是200px宽,那2x图就得是400px宽。