移动端网页适配必备基础之像素

352 阅读6分钟

像素

像素是个很大的概念,深入来讲则涉及仪器设配(显示器,照相机等), 艺术绘画(像素画),算法应用(图像识别与处理)等,作为前端,我们只讨论移动设备、电脑显示器跟我们工作相关中像素内容。

像素(设备)的定义

  • 本身是一个硬件概念,后来推广到软件中。
  • 硬件中,最开始一个像素就是一个可以单独受控,显示颜色的小点。后来随着硬件的改变,像素的意义随之变化。例如液晶显示器中,一个像素实际上是三个可以受控的小点组成

三个可以受控的小点

  • 移动设备和电脑中的像素代表的是,组成这些设备显示内容的最小单位。

通过ps来了解像素

ps文件

像素点

  • 每一个像素都有自己位置,和颜色值
  • 像素是最小单位
  • 像素构成这幅图

分辨率

刚才我们创建750 * 1334像素,分辨率为300像素/英寸文件,那300像素/英寸是什么意思呢?

在解释这个是什么意思之前,我们需要了解什么叫绝对单位和相对单位?

  • 类比绝对路径和相对路径
  • 绝对单位:不会随着参照物的改变而改变
  • 相对单位:会随着参照物的改变而改变

思考题:CSS中的px, 是一个相对单位还是一个绝对单位?

300像素/英寸代表一个单位

手机尺寸
勾股定理
ppi

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

我们看一下iphone手机厂商提供的设备参数

手机数据

手机数据

  1. 根据上面公式,我们可以算出来的,300ppi, 750 * 1334像素---设备尺寸为5.1,而我们iphone8的ppi为326ppi, 750 * 1334像素尺寸,设备尺寸为4.7。 那说明了什么-----ppi是可变的。
  2. 当我们宽高的像素大小固定,尺寸越小。那么对应ppi越大。当ppi越大,每inc的像素数量越多。
  3. 我们知道,当一英寸的像素越密集,图片、屏幕像素的内容会越清晰。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标。

分辨率和像素的关系

  • 在ps中,ppi就等同于像素密度。
  • 而在我们日常,或者查看手机、笔记本查看参数的时候。分辨率都是1334 * 750这样的格式。
  • 其实我们可以得出这两个是指向的同一个。分辨率只是凸显横向和纵向的像素数而已,因为如果横向和纵向分辨率一样多,100px * 100px ,一个屏幕尺寸为1英寸,100英寸,显示的图像是天差地别的。所以就算横向和纵向像素一致,脱离了屏幕尺寸的比较,毫无意义。

iphonese参数

小结:

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

retina屏幕(视网膜显示屏)

retina屏幕

retina屏幕

我们可以看见iphone4/960 x 640 像素,326 ppi和 iphone 3Gs 480 x 320 像素,163 ppi两款手机参数不一致,但是根据前面的公式:我们可以分别算出对应 设备的尺寸:两个都是3.5英寸 。

960^2+640^2/326 = 3.5480^2+320^2/163 = 3.5

我们可以得出:同样大小设备尺寸下,可展示的像素(物理像素)扩大了四倍。 即手机厂商通过某种技术,在同样的屏幕尺寸大小下,让可展示得物理像素变多了,看的更加清晰。这就retian屏幕的由来。

虚拟像素单位(又称设备独立像素---Device Independent Pixels)

  1. iPhone 3GS 和 iPhone 4/4s 的尺寸都是 3.5 寸
  2. 像素是物理单位,真实存在的。
  3. 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单位像素

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

详情请点击

参考文章

分辨率和像素是什么关系?