基本概念每英寸dpi所包含的像素数。物理像素移动设备出厂时有分辨率,小米51920x1080iphone61334x750逻辑像素给你的页面一个,读出document.documentElement。clientWidth,大多数浏览器会给你布局视口的宽度,现在等于dips宽度。当您在html中设置时,页面将移动设备的dpis宽度作为逻辑像素。如何获得dpis宽度和scaledpis宽度?首先需要以小米5为例计算dpi,sqrt(19202x10802)/5.15(屏幕物理尺寸)=427.7计算scale=427.7/160约等于3。(此计算针对androidphones,但是ios类似,至少现在的机型都符合这个计算方式,有清楚思路的可以告诉你)android是以160的倍数为分隔点来划分不同手机逻辑像素的缩放比例。160mdpi320hdpi480xhdpi计算dpis宽度,即逻辑像素dpis宽度=1080/3=360那么结论来了。实际上,在开发过程中只需要考虑逻辑像素。android中的dp单位和移动前端中的px是一样的。在ios中也使用逻辑像素。那么在开发的时候,我们该如何选择图片呢?1280x720、1920x1080、2560x1440,不同物理分辨率的手机有什么区别?还是以小米5为例,逻辑像素是360,那么其实对于小米5来说,360px(物理像素)的图片不需要拉伸就可以正常显示,所以为了让图片更好,可以用720px(物理像素)的图片或者1080px(物理像素)的图片。不过,360的逻辑像素只有小米5的,不同手机之间存在差异。为了让所有手机上的图片显示更正常,应该选择物理像素较高的图片。android端通常会在本地准备多组图片,根据不同的比例选择不同的图片,这样在所有手机上都能更好的显示,同时保证性能和显示效果。当然,你可以选择只使用最大的一个,但代价是内存使用和性能问题。在移动端尤其如此,因为移动端的图片通常都是从服务器获取的,所以如果统一使用最大的图片,势必会影响加载速度,所以根据实际使用情况,你可以自己做决定。