像素
像素是个很大的概念,深入来讲则涉及仪器设配(显示器,照相机等), 艺术绘画(像素画),算法应用(图像识别与处理)等,作为前端,我们只讨论移动设备、电脑显示器跟我们工作相关中像素内容。
像素(设备)的定义
- 本身是一个硬件概念,后来推广到软件中。
- 硬件中,最开始一个像素就是一个可以单独受控,显示颜色的小点。后来随着硬件的改变,像素的意义随之变化。例如液晶显示器中,一个像素实际上是三个可以受控的小点组成

- 移动设备和电脑中的像素代表的是,组成这些设备显示内容的最小单位。
通过ps来了解像素


- 每一个像素都有自己位置,和颜色值
- 像素是最小单位
- 像素构成这幅图
分辨率
刚才我们创建750 * 1334像素,分辨率为300像素/英寸文件,那300像素/英寸是什么意思呢?
在解释这个是什么意思之前,我们需要了解什么叫绝对单位和相对单位?
- 类比绝对路径和相对路径
- 绝对单位:不会随着参照物的改变而改变
- 相对单位:会随着参照物的改变而改变
思考题:
CSS中的px, 是一个相对单位还是一个绝对单位?
300像素/英寸代表一个单位



- 300像素/英寸---就代表1英寸上,有300个像素,而英寸是绝对单位。无论设备怎么变化,在1英寸的地方,我们就显示300个像素。 ppi(Pixels Per Inch也叫像素密度,所表示的是每英寸所拥有的像素数量。
- 根据上边的公式,我们知道横向、纵向、PPI、屏幕尺寸中任意三个,就可以得出剩下的内容。
- 从而得出,像素是一个物理单位,绝对单位,不是根据参照物不同进行改变。
我们看一下iphone手机厂商提供的设备参数


- 根据上面公式,我们可以算出来的,300ppi, 750 * 1334像素---设备尺寸为5.1,而我们iphone8的ppi为326ppi, 750 * 1334像素尺寸,设备尺寸为4.7。 那说明了什么-----ppi是可变的。
- 当我们宽高的像素大小固定,尺寸越小。那么对应ppi越大。当ppi越大,每inc的像素数量越多。
- 我们知道,当一英寸的像素越密集,图片、屏幕像素的内容会越清晰。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标。
分辨率和像素的关系
- 在ps中,ppi就等同于像素密度。
- 而在我们日常,或者查看手机、笔记本查看参数的时候。分辨率都是1334 * 750这样的格式。
- 其实我们可以得出这两个是指向的同一个。分辨率只是凸显横向和纵向的像素数而已,因为如果横向和纵向分辨率一样多,100px * 100px ,一个屏幕尺寸为1英寸,100英寸,显示的图像是天差地别的。所以就算横向和纵向像素一致,脱离了屏幕尺寸的比较,毫无意义。

小结:
- 像素:设备中显示内容的最小单位
- 是一个物理单位
- 有具体位置,有颜色
- 像素密度,每英寸上有多少像素
- 分辨率就等同像素密度,只是大多数时候用横向 像素 * 纵向像素来代表
- 我们也得出,同样尺寸下,像素密度越大,内容越清楚了
retina屏幕(视网膜显示屏)


我们可以看见iphone4/960 x 640 像素,326 ppi和 iphone 3Gs 480 x 320 像素,163 ppi两款手机参数不一致,但是根据前面的公式:我们可以分别算出对应 设备的尺寸:两个都是3.5英寸 。
√960^2+640^2/326 = 3.5
√480^2+320^2/163 = 3.5
我们可以得出:同样大小设备尺寸下,可展示的像素(物理像素)扩大了四倍。 即手机厂商通过某种技术,在同样的屏幕尺寸大小下,让可展示得物理像素变多了,看的更加清晰。这就retian屏幕的由来。
虚拟像素单位(又称设备独立像素---Device Independent Pixels)
- iPhone 3GS 和 iPhone 4/4s 的尺寸都是 3.5 寸
- 像素是物理单位,真实存在的。
- iPhone 3GS 的分辨率是 320x480,iPhone 4/4s 的分辨率是 640x960,这也就是意味 着同样长度的屏幕,iPhone 3GS 有 320 个物理像素。iPhone 4/4s 有 640 个物理像素。
如果我们按照真实的物理像素进行布局,比如说我们按照 320 物理像素进行布局, 到了 640 物理像素的手机上就会有一半的空白,为了避免这种问题,就产生了 虚拟像素单位---不是真实存在的。


- 我们统一 iPhone 3GS 和 iPhone 4/4s 都是 320 个虚拟像素,只是在 iPhone 3GS 上,最终 1 个虚拟像素换算成 1 个物理像素
- 在 iphone 4s 中,1 个虚拟像素最终换算成 2 个物理像素。
- 至于 1 个虚拟像素被换算成几个物理像素,这个数值我们称之为设备像素比。
设备像素比(devicePixelRatio)
devicePixelRatio = 物理像素/设备独立像素- iphone6/7/8是 物理像素:750 * 1334 , 设备独立像素375 * 667,所以设备像素比为2
- 即一个设备独立像素对应2个真实物理像素单位。

我们写的css单位像素
- 我们10px, 是代表真实的物理像素单位?还是代表的是设备独立像素像素单位呢?
- css的px是一个绝对单位,还是相对单位呢?即10px是不是在各种条件下,占的 屏幕大小都是一样的?
- 我们写的css中px, 跟meta标签中 name="viewport" , 中width, scale这些参数关系?