移动端web开发之像素和DPR

前面的话

像素在web开发中几乎天天用到,但到底什么是像素,移动端和桌面的像素有区别吗?缩放对像素有影响吗?视网膜屏幕和像素有什么关系?关于这些问题,可能就不清楚了 ,本文将介绍关于像素的相关知识

定义

像素,又称为画素,是图像显示的基本单位,译自英文“pixel”,pix是英文单词picture的常用简写,加上英语单词“元素”element,就得到pixel,故“像素”表示“图像元素”之意,有时亦被称为pel(picture element)

像素是网页布局的基础。一个像素就是计算机能够显示一种特定颜色的最小区域。当设备尺寸相同但像素变得更密集时,屏幕能显示的画面的过渡更细致,网站看起来更明快。

ppi是指屏幕上每个英寸可以显示的像素的数量,既屏幕像素密度

 

分类

实际上像素分为两种:设备像素和css像素

  1. 设备上像素(device indepentent pixels):设备屏幕的物理像素,任何设备的物理像素的数量都是固定的
  2. css像素(css pixels):又称为逻辑像素,是为web开发者创造的,在css和javascript中使用的一个抽象的层

每一个css声明和几乎所有的javascript属性都使用css像素,因此实际上从来用不上设备像素,唯一的例外是screen.width/height

// 我们通过css和javascript代码设置的像素都是逻辑像素
width:300px;
font-size:16px;

缩放

在桌面端,css的1个像素往往都是对应着电脑屏幕的1个物流像素

// 一个css像素完全覆盖了一个设备像素

而在手机端,由于屏幕尺寸的限制,缩放是经常性的操作。

       //设备像素(深蓝色背景)、CSS像素(半透明背景)
  //左图表示当用户进行缩小操作时,一个设备像素覆盖了多个CSS像素
  //右图表示当用户进行放大操作时,一个CSS像素覆盖了多个设备像素

     

不论我们进行缩小或放大操作,元素设置的CSS像素(如width:300px)是始终不变的,而一个CSS像素对应多少个设备像素是根据当前的缩放比例来决定的

DPR

设备像素比DPR(devicePixelRatio)是默认缩放为100%的情况下,设备像素和css像素的比值

DPR = 设备像素 / CSS像素(某一方向上)

在早先的移动设备中,并没有DPR的概念,随着技术的发展,移动设备的屏幕像素密度越来越高。从iphone4开始,苹果公司推出了所谓retina视网膜屏幕。之所以叫做视网膜屏幕,是因为屏幕的PPI(屏幕像素密度)太高了,人的视网膜无法分辨出屏幕上的像素点。iphone4的分辨率提高了一倍,但屏幕尺寸却没有变化,这意味着同样大小的屏幕,像素多了一倍,于是DPR = 2

实际上,此时的css像素对应着以后要提到的理想视口,其对应着javascript属性是screen.width/screen.height而对应设备像素比DPR也有对应着javascript属性window.devicePixelRatio

以苹果5为例,iphone5css像素为320px*568px,DPR是2,所以其设备像素为640px*1136px

    640(px) / 320(px)  = 2
    1136(px) / 568(px) = 2
    640(px)*1136(px) /  320(px)*568(px) = 4

 

牛逼的代码像煲汤一样,都是用时间慢慢熬出来的

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值