理解各种像素概念及Viewport

有关像素的概念

逻辑像素

逻辑像素、CSS 像素、设备独立像素(DIP)、相对像素这几种说法其实是同一个东西,都是相对且抽象的,单位为 px,具体显示的有多大,要看浏览器的实现,而浏览器的实现需要考虑设备的物理像素、屏幕宽度等因素

物理像素(分辨率)

物理像素是屏幕在真实世界实际存在的点(把屏幕想像成一盏盏小灯聚在一起,物理像素就是灯的数量)

分辨率是描述物理像素的量,一般以 1080x720、320x568 等等这种形式去描述

像素密度:PPI(Pixel Per Inch)

像素密度是单位长度内物理像素点的数量,可用于描述清晰度,又名解析度(resolution),但要区别于分辨率

它是联系真实世界长度的关键量,像素密度越小,我们就越容易看到像素点

举个例子:

若物理分辨率是 axb

像素密度 = √(a2+b2) / 屏幕尺寸

DPI vs PPI

DPI:dots per inch,表示每英寸(对角线长度)能打印上的墨滴数量。最初应用于打印技术中。打印设备多在 300 至 3600 DPI 之间。

PPI:pixels per inch,电子显示设备从打印设备中借鉴了 DPI 的概念,产生了 PPI的概念。即显示器每英寸(对角线长度)上像素点的数量,指像素密度

设备像素比:DPR(device pixels ratio)

因为逻辑像素和物理像素存在区别,css 里写的逻辑像素要按一定的比例转换成物理像素,这个比例就是 DPR

DPR = 物理像素 / 逻辑像素

通常,物理像素比逻辑像素多

Viewport

viewport 是浏览器的概念,它在 PC 端和移动端表现有差异,甚至在不同的浏览器上表现也有差异,这里只介绍大多数情况

PC端

viewport 指的是浏览器可视区域大小,使用CSS像素为单位,可以通过 document.documentElement.clientWidth 获取

同样可以通过 window.innerWidth 获取,区别在于后者把垂直滚动条算进去了,或者说前者是<html>这个标签块的宽度

关于缩放

缩放 是通过调节DPR实现的。放大时,DPR增大,viewport 会减小(因为只能看到局部页面了);缩小时反之。

CSS 百分比出现的问题

若设置 html > div 宽度为 100% ,指的是 100% <html>块的宽度 = viewport 宽度(所以会导致一个问题:父级元素使用百分比样式,子级元素使用px样式时可能会导致溢出,因为100%是相对html块的,这个块是可以通过拉伸浏览器窗口变化的,不一定能够容纳内部固定px的元素)

移动端

移动端因为尺寸问题,把viewport 分为了两个部分

  • Layout Viewport(布局视区):整个文档可视区域大小,也就是<html>块的大小,可以通过 document.documentElement.clientWidth 获取
  • Visual Viewport(可视视区):当前正在查看的 Layout Viewport 部分大小,可以通过 window.visualViewport(chrome)或 window.innerWidth(safari) 获取

⚠️ 注意:这两个参数的获取在各大浏览器之间存在兼容性问题

image.png

image.png
image.png

此外还有一个概念:Ideal Viewport,指的是设备的屏幕宽度,只由设备决定。它的存在是因为移动设备的分辨率种类非常多,应用开发时不可能去适配每一种分辨率,应该让移动设备厂商去尽可能地适配320/375/400px等常用的屏幕宽度(依赖反转),通过 DPR 将屏幕宽度映射到物理分辨率****。

这三个量都是以 设备独立像素(CSS像素) 为单位

关于缩放

移动设备通过 scale 参数进行缩放

scale = Ideal Viewport Width / Visual Viewport Width

屏幕宽度不变,可视视区在变

举个例子:

  • 页面缩小时,Scale 减小,即 Visual Viewport 增大,可以看到的 Layout 变大了(内容便多了)
  • 页面增大时,Scale 增大,即 Visual Viewport 减小,可以看到的 Layout 变小了(内容变少了)

转换关系

image.png

参考

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容