从PX单位到的CSS像素

作者: 老虎爱吃母鸡 | 来源:发表于2016-07-23 23:42 被阅读0次

PX
与显示设备相关。对于屏幕显示,通常是一个设备像素(点)的显示。对于打印机和高分辨率的屏幕,一个CSS像素意味着多个设备像素,因此,每英寸的像素的数量保持在96左右。

在MDN的CSS<length>属性中是这样介绍PX,为什么说PX是与设备相关而且是相对的单位呢?
其实CSS中使用的PX像素是一个为了方便WEB编程所设计出来的概念
例子1:

  • 假如我们的图片有一个CSS属性<width=300px>,当我们缩放的时候,图片大小变了,但是它的属性<width=300px>却没有变。那为什么会这样呢。

例子2:

  • 假如我们在IPHONE4上面定义一个<width=320px>的块,IPHONE4的分辨率是960PX*640PX,理论上应该占据屏幕的一半!但是事实却不是这样的,最终结果出来只会占三分之一左右,为什么会这样呢。

因为<width=320px>并不是定义在960*640这个分辨率上的,这个分辨率中的960和640我们称为设备像素(device piexl),而其实<width=320px>的块是放在viewport上的,IPHONE4的默认viewport是980px,所以最终在页面上块只占据到三分之一左右。那么什么是viewport呢?
viewport其实也和CSS像素一样,是一个方便WEB编程的概念,CSS关于像素的设置就是放在这个viewport上的,可以想象viewport是一张不改变大小的图片,CSS的不同大小的块一个一个放置在上面。

viewport
上图中深色的背景为设备像素,而上面的透明层假设为viewport,假设默认设备像素和CSS像素是一比一,当用户缩小页面时,一个设备像素就需要容纳更多的CSS像素。当用户放大页面时,多个设备像素来呈现一个设备像素。 图1默认一比一 图2缩小 图3放大

上面的图是我自己简单画的,我理解的模型大概就是这样,三层的,最上面蓝色边框那层是CSS的各个元素,他们布局于中间绿色的viewport层上,下面黑色的是我们的浏览器窗口,在移动端就是设备屏幕。

下面我们再来看一个例子
例子3:

retina例子
上图是苹果的Retina屏幕,其实普通屏幕是一个设备像素显示一个CSS像素,Retina屏幕就是用四个设备像素显示一个CSS像素,所以Retina上显示的图片更精细,这里面还涉及到了PPI(pixel per inch)-每英寸显示的设备像素点,和DPR(device pixel ratio)-设备像素比例,其中相同的屏幕尺寸下PPI越高就是分辨率越高。而Retina的DPR是2,怎么算的呢,就是X轴或Y轴的设备像素/CSS像素,例如在上图,Retina的四个设备像素来显示一个CSS像素,在纵向或横向的比例是2:1,所以DPR就是2

备注:

  1. 文中所涉及的CSS像素是在浏览器的概念,在移动端的概念是设备无关像素或者虚拟像素(device-independent pixel),但是意思是一样的
  2. <meta name="viewport" width="device-width">其实是把viewport剪裁成了设备屏幕宽度,而不是去缩放viewport到屏幕宽度

参考:
前端工程师需要明白的「像素」
A pixel is not a pixel is not a pixel
关于像素,分辨率,viewport,设备像素,css像素,Retina

相关文章

  • 从PX单位到的CSS像素

    PX与显示设备相关。对于屏幕显示,通常是一个设备像素(点)的显示。对于打印机和高分辨率的屏幕,一个CSS像素意味着...

  • 逻辑像素pt和物理像素px

    pt: html css中的使用的单位像素px: 实际上指的是逻辑像素pt px: photoshop测量中的但是...

  • px, em, rem 的区别和使用场景

    区别 CSS 中,目前我们常用到的长度单位有 px, em, rem。 绝对长度单位px(pixel 像素): 相...

  • CSS阶段第一小节第二天

    1.CSS语法 ①CSS的格式 ②CSS的属性 *width:设置宽度,单位px(像素) *height:设置高度...

  • 总结CSS中的单位

    CSS中单位总结 px px(像素)是CSS中最为常用的一种单位,传统上一个像素对应计算机屏幕上的一个点,对于高清...

  • 屏幕适配

    在CSS中我们一般使用px作为单位,需要注意的是,CSS样式里面的px和物理像素并不是相等的。CSS中的像素只是一...

  • 移动端开发基础

    移动开发像素知识 px:css pixels 逻辑像素,浏览器使用的抽象单位 dp:物理像素(设备无关像素),跟手...

  • H5党建e家学习笔记(2)

    总结二 px px指的是逻辑像素,也叫作css像素,适配时不能使用px作为单位 em 指的是一个汉字的宽度,2em...

  • web app基础知识(一)

    pixel像素基础知识 px:CSS pixels 逻辑像素,浏览器使用的抽象单位 dp,pt : device ...

  • 必知必会--web移动端开发二三事

    Pixel 像素知识 px: css pixels 逻辑像素,浏览器使用的抽象单位 dp,pt: divice i...

网友评论

    本文标题:从PX单位到的CSS像素

    本文链接:https://www.haomeiwen.com/subject/csewjttx.html