近视眼怎么恢复

首页 » 常识 » 常识 » CSS像素设备像素2倍图梳理
TUhjnbcbe - 2024/12/16 18:17:00
北京哪个医院看白癜风病最好 https://disease.39.net/bjzkbdfyy/241210/d2ur2z4.html

一直对于移动端网页开发都不咋熟悉,之前也写过移动端的页面,但是似乎并没有遇到什么问题,就正常写css。对于一些概念也不熟悉,什么两倍图,移动端兼容问题等。因为后续会进入act-native的开发,想着整理一些概念也是有必要的。

1.前端不止:Retina屏幕下两倍图

屏幕分辨率:屏幕有多少个像素(也称为设备像素,物理属性,不可变),widthheight。比如iPhone7,分辨率是``。

疑问:电脑的调整分辨率是干嘛用的?

图片大小:图片长宽的像素个数:widthheight,如某张图片是

假如一张14*的图片在iPhone7中进行完全展示,那么一个图片像素对应一个设备像素,因此是完全保真的显示。

像素密度(PPI):每英寸所拥有的的像素数目,PPI数值越大,代表显示屏能够以更高的密度显示图像,画面的细节会更丰富。

以Retina屏幕为例,它并不是像普通显示器那样通过增大尺寸来增加分辨率,而是靠提升屏幕单位面积内的像素数量,即PPI来提升分辨率,这样就有了高像素密度屏幕

1.1web中的CSS像素

CSS像素是一个抽象概念,设备无关像素,简称DIPS,device-independent像素,主要使用在浏览器上,用来精确的度量(确定)Web页面上的内容。

同样的css大小,在mobile,pc上显示的大小是一样的,(如用尺子测量都是cm)。

devicePixelRatio设备像素比:

即设备物理像素(屏幕分辨率)与设备独立像素(css像素)的比例:window.devicePixelRatio=物理像素/设备独立像素

普通密度桌面显示屏的devicePixelRatio=1高密度桌面显示屏(MacRetina)的devicePixelRatio=主流手机显示屏的devicePixelRatio=或

.box{width:00px;height:00px;}

以上代码在设备上绘制一个像素的盒子,(该大小在所有物理设备上看起来都一致)

在devicePixelRatio为1时,真实设备会用个设备像素去渲染它。但是在devicePixelRatio为时,真实设备会用个设备像素去渲染。

对于图片来说,一张照片的大小就是像素,用的设备像素,能保真的显示。而如果使用的设备像素去渲染,就会模糊(*可以理解为被拉伸,被放大)。

因此,引入了倍图,倍图的概念。

也就是同一张图片,做成1倍图,像素是:,做成倍图,像素是.

图片容器css设置为00*00:

//css样式.img{width:00px;height:00px;}

在devicePixelRatio为1的屏幕中,设置的css像素对应的真实物理像素为,引入一倍图,像素刚好是,一个物理像素对应一个图片像素,可以保真显示。

在devicePixelRatio为的屏幕中,css像素任然是,对应的真实物理像素为(width,height),这时候引入二倍图,像素刚好是,*一个物理像素对应一个图片像素,可以保真显示。

使用媒体查询更换图片:

#element{background-image:url(his.png);}

mediaonlyscenand(min-device-pixel-ratio:){#element{background-image:url(his

x.png);}}

mediaonlyscenand(min-device-pixel-ratio:){#element{background-image:url(his

x.png);}}

参考资料前端不止:Retina屏幕下两倍图什么是三倍图?——移动端尺寸知识入门使用Flexible实现手淘H5页面的终端适配
1
查看完整版本: CSS像素设备像素2倍图梳理