dpr(设备像素比)与 移动端适配

article/2025/10/11 8:24:29

在上一篇文章中(使用 rem 实现移动端的自适应布局),我们讲到 iphone6s 的屏幕宽度为 375px,我们拿到的视觉稿也是基于iphone6s 设计的,但是设计稿的宽度却是 750px,这是为什么呢?

原因就是 iphone6s 的屏幕 dpr = 2,首先我们先理解 3 个概念:

物理像素(physical pixel)

一个物理像素是显示器(手机屏幕)上最小的物理显示单元,在操作系统的调度下,每一个设备像素都有自己的颜色值和亮度值。

设备独立像素(density-independent pixel)

设备独立像素(也叫密度无关像素、逻辑像素),可以认为是计算机坐标系统中得一个点,这个点代表一个可以由程序使用的虚拟像素(比如: css像素),然后由相关系统转换为物理像素。

设备像素比(device pixel ratio 简称 dpr)

dpr = 物理像素 / 设备独立像素 // 在某一方向上,x方向或者y方向

在javascript中,设备的 dpr 可以通过 window.devicePixelRatio 获得。在css中,可以通过 -webkit-device-pixel-ratio , -webkit-min-device-pixel-ratio 和 -webkit-max-device-pixel-ratio 进行媒体查询,对不同dpr的设备,做一些样式适配(这里只针对webkit内核的浏览器和webview)。

像素密度(Pixels Per Inch 简称 PPI)

表示的是每英寸所拥有的像素数量。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。我们经常说的视网膜屏幕(Retina),之所以看起来清晰度高,是因为其 ppi 很高的 。而图像、色彩还原度高是其 dpr 比一般的设备高;

以 iphone6s 为例:

  • 设备宽高为 375×667 ,可以理解为设备独立像素(逻辑像素 或者 css 像素)。
  • dpr = 2(也就是我们通常说的“二倍屏”),可以得出其物理像素应该是其逻辑像素的 2 倍,750 * 1334。

如下图(图是盗的):

由上图可以看出,同样的 css 代码:

{width:2px;height:2px;
}

在不同的设备上所呈现的效果是不一样的,在普通一倍屏上,其表示 2 * 2 个物理像素点,而在二倍屏上,其表示 4 * 4 个物理像素点;

位图(bitmap)

亦称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的。即每一个图像像素都包含一些自身的显示显示信息(如:显示位置,颜色值,透明度等等),我们常用的 web 图片(如 png,jpg,gif,bmp)都是位图;与之对应的是矢量图(如 swf、svg 等等)矢量图可以无损缩放,而位图不行,对其进行放大时就会模糊,原因如下图(图是盗的):

对于二倍屏来说,1个位图像素对应于4个物理像素,由于单个位图像素不可以再进一步分割,所以只能就近取色,从而导致图片模糊(注意上述的几个颜色值); 

所以一张宽度为 375px 的图片,同样都是 375×667的设备铺满屏幕, 在一倍屏上显示是正常的,而在二倍屏上显示就会变模糊;针对此问题,比较好的解决方案就是 用“二倍图片”(@2x),也就是使用宽度为750px的图片。这就解释了视觉稿宽度通常为 750px。

也许大家有个疑问:那一倍屏中显示二倍图片,会不会有问题呢?

其实问题不会太大,设备会根据图像的四个像素信息,算出其在一个像素点上应该如何显示,只是会使图片缺少一些锐度罢了。

设备的 dpr 不同,所导致也不仅只有图片的显示问题,还有 边框1px 问题等,具体在 下一篇 rem 实现移动端适配一些细节处理。

文章有什么遗漏或者不正确的地方,劳烦各位指出,万分感谢!

 

 

 

 


http://chatgpt.dhexx.cn/article/98KqxamA.shtml

相关文章

新一代Web技术栈的演进:SSR/SSG/ISR/DPR都在做什么?

在开始阅读之前,先解释一下文章里用到的英文缩写: CSR:Client Side Rendering,客户端(通常是浏览器)渲染;SSR:Server Side Rendering,服务端渲染;SSG&#xf…

Dapr

环境: window10 docker desktop dotnet 5.0 一、安装 Dapr CLI 打开 Windows PowerShell 或 cmd ,运行以下命令以安装 Dapr CLI,并添加安装路径到系统环境变量中。 powershell -Command "iwr -useb https://raw.githubusercontent.…

当我们在讨论设备像素比(device pixel ratio,dpr)的时候我们在讨论什么?

目录 0. 为什么要写这篇文章?1. 设备像素比的问题在哪里?1.1. 不同的论述导致不同的理解1.2. 设备独立像素与CSS像素1.3. 小结 2. 设备像素比 设备物理像素/CSS像素,真的正确吗?2.1. PC端验证2.2. 手机端验证2.3. 出了什么问题&a…

动态dp

以前学树型dp留下的题目,没有写,然后过了几个月后又回来写了这道题 战略游戏 这是一道典型的最小点覆盖的模板,蒟蒻采用的是树型dp的做法 设 \(f[i][0/1]\) 在以 \(i\) 为根的子树中,选或不选当前这个点所需要的最少的点 那么转移…

移动端适配dpr

1. 移动端适配的代码(设计稿iPhone6)如下: (function (doc,win) {// seMetaTagScale(doc, win)var fn function () { var deviceWidth doc.documentElement.clientWidth; // css逻辑像素,不是物理像素if (deviceWidth > 82…

移动端布局(一)dp、dip、PPI、dpr、图片模糊

注: 此篇文章引用多篇文章,在文章的结尾处有注明文章的来源 高清屏 即高清屏,把更多的像素压缩至一块屏幕里,从而达到更高分辨率显示的细腻程度,使人眼无法分辨出单个的像素。 物理像素(dp) 物理像素,设备的硬件像素&#xff…

不同设备屏幕尺寸和DPR适配

为什么需要适配 目前市面上设备屏幕属性十分多样化(宽度和DPR并不一致),而作为设计和前端开发,无法为每个尺寸的设备单独设计一套UI并将其转为前端代码,这不现实。所以我们需要一套方案来将一套设计稿完美呈现在不同尺…

DPR-ERR-2109

问题(摘要) [Simplified Chinese] 该技术文档说明了如何解决在安装和配置IBM Rational Common Reporting服务器时可能发生的错误:"DPR-ERR-2109 The dispatcher cannot service the request at this time. The dispatcher is still initializing. …

DPR和REALM论文笔记

DPR(2020 EMNLP) 该论文的模型主要是一个双塔结构如下所示: 整个模型的训练数据D包含m个例子,其中每个例子由一个问题 q i q_i qi​、一个相关段落 p i p_i^ pi​、n个不相关段落 p i , 1 − , ⋯ , p i , n − p_{i,1}^-,\cdots,p_{i,n}^- pi,1−​,⋯…

dpr单位

1px dpr^2 * dp 这个是不是有问题? 结尾的总结: 1px dpr^2 * dp 这个是不是有问题? 以下这个等式不成立吧: 320*568 px 2^2 * 1136*640 1px dpr ^2 * dp 是平面上的像素换算,但实际开发当中使用更多的是长度上的换算&#x…

图文并茂带你弄懂物理分辨率、分辨率、物理像素、逻辑像素、dpr、ppi

目录 物理分辨率和分辨率 什么是物理像素 什么是CSS像素 什么是设备像素比 什么是标清屏和高清屏 缩放 什么是PPI(DPI) 物理分辨率和分辨率 首先得知道物理分辨率和分辨率是2个概念,可别混淆。 物理分辨率(标准分辨率&am…

DPSR

testsets/real_imgs/LR 图片chip.pngchip_kernel.pngcolour.pngcolour_kernel.pngfrog.png尺寸109x557x7668x45599x99500x375 testsets/real_imgs/x4_dpsr 图片chip.pngchip_x2.pngchip_x3.pngchip_x4.png尺寸109x55218x110327x165436x220 testsets/Set5/GT 图片:…

说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

一、背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同…

15-移动端布局基础——DPI、PPI、物理像素、DPR、viewportcss像素、DPR

文章目录 1. DPI 和 PPI 是什么?一、物理像素和css像素三、设备像素比DPR四、viewport五、viewport三理论:布局视口、视觉视口、理想视口五、利用meta标签对viewport进行控制 1. DPI 和 PPI 是什么? DPI ---- 最初用于衡量打印物上每英寸的点…

【CSS】聊一聊CSS像素、设备像素、设备独立像素、dpr、ppi 之间的区别

前言 大家好,我是HoMeTown,顺着计量单位,想继续聊一下CSS像素、设备像素、设备独立像素、dpr、ppi 之间的区别。 众所周知,在CSS中我们通常是使用px作为单位的场景多一点,在PC端,1个像素恰好对应电脑屏幕…

移动web开发之像素和DPR详解

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

DPR

Dense Passage Retrieval for Open-Domain Question Answering https://github.com/facebookresearch/DPR摘要 开放域问题回答依赖于有效的段落检索来选择候选上下文,其中传统的稀疏向量空间模型,如TF-IDF或BM25,是事实上的方法。作者表明检…

如何理解dpr

首先如何在设备上实现1px边框: 物理像素: 在视网膜屏下面, 显示的实际的像素颗粒,iphone6分辨率7501334px 逻辑像素: 可以认为成就是设备的宽度,css设置的像素,iphone6逻辑像素7501334px dpr 物理像素(设备像素) /逻辑像素(设备独立像素) 所…

基于C99标准的C语言coding技巧

文章目录 Union宏定义数组和柔性数组其它 Union 共用体中有int型和char[10]这两个成员&#xff0c;代码如下&#xff1a; #include <stdio.h> union st { int x; char c[10]; }s;int main(void) { s.x50; s.c"abcdef"; printf("%s",s.c); return 0…

C语言的三套标准:C89、C99和C11

我们今天使用的 Windows、Linux、Mac OS 等操作系统都是由一种叫做 Unix 的系统演化而来。Unix 作为80年代主流的操作系统&#xff0c;是整个软件工业的基础&#xff0c;是现代操作系统的开山鼻祖&#xff0c;C语言就是为 Unix 而生的。 Unix 和C语言的开发者是同一人&#xf…