zoukankan      html  css  js  c++  java
  • 微信小程序为什么引入 rpx

    前言

    众所周知,px 是一个叫做像素的东西,pixel。

    像素是指由图像的小方格组成的,这些小方块都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。
    
    可以将像素视为整个图像中不可分割的单位或者是元素。不可分割的意思是它不能够再切割成更小单位抑或是元素,它是以一个单一颜色的小格存在 [1]  。
    
    每一个点阵图像包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
    

    好的,明白了什么是像素的话,那么可以看下为什么rpx出现了。

    正文

    看一张图,假设两者的都是一个50px的div,那么显示效果如下:

    我们看到他们大小都不一致,大的反而更小,这是为啥子呢?

    首先像素不像素人民是不知道,人类看到的是肯定是cm。

    在此之前呢,我们应该了解一些概念:

    物理像素:

    
    物理像素(分辨率)是指设备屏幕实际拥有的像素点。比如iPhone 6的屏幕在宽度方向有750个像素点,高度方向有1334个像素点,所以iPhone 6 总共有750*1334个物理像素。
    
    同一个设备的物理像素是固定的,这是厂商在出厂时就设置好了的。
    
    

    这个物理像素就很好理解了。

    那么逻辑像素呢?

    比如说iphone6,把屏幕的逻辑像素宽度设置为了375px,物理的其实可以随便设置。

    那么有另外一个概念,就是像素比,也就是:

    设备像素比(Device Pixel Ratio, DPR):一个设备的物理像素与逻辑像素之比
    
    设备像素比 (dpr)= 物理像素(dp) / 设备独立像素(dip)
    
    在Retina屏的iphone上,devicePixelRatio的值为2,也就是说1个css像素相当于2个物理像素。通常所说的二倍屏(retina)的dpr是2, 三倍屏是3。    
    

    iphone6的尺寸:138.3 毫米 (5.44 英寸)×67.1 毫米 (2.64 英寸)×7.1 毫米 (0.28 英寸)

    这里iphone6 的375px 其实就是把67.1分成了375份,然后50px,得到的宽度为:50/375*67.1。

    好的在这里就解释了为什么大屏幕显示更小的问题。

    而在一台手机上,人们关注的是比例问题。

    在这里,50/375的比例明显大于50/1080的比例。

    那么这时候就可以通过rpx来解决比例问题。

    用iphone 6来举例,其宽度为逻辑像素为375px,而rpx 是把屏幕分成750rpx,那么1rpx=375/750=0.5px;

    那么再回头来看比例问题,假设都是50rpx,那么比例都是50/750,这样就达到了视觉效果。

  • 相关阅读:
    jsp <img src="“> src 相对路径的问题
    记一次Intellij-IDEA配置JDK1.8,支持Lambda新特性
    centOS6.5 查看 启动 关闭防火墙
    java设计模式之--工厂方法模式
    BlockingQueue之---ArrayBlockingQueue
    两个线程,一个为123456,一个为ABCDEF、交替打印出1A2B3C...
    JUC之---超好用的阻塞锁
    JUC之---读写锁
    java设计模式之--代理模式
    java设计模式之--线程安全的单例模式
  • 原文地址:https://www.cnblogs.com/aoximin/p/12961364.html
Copyright © 2011-2022 走看看