news 2026/10/4 9:00:35

什么是物理像素和逻辑像素?设备像素比(DPR)是什么?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
什么是物理像素和逻辑像素?设备像素比(DPR)是什么?

物理像素和逻辑像素

物理像素

物理像素是指设备屏幕上实际存在的发光点,是屏幕显示的最小物理单位。例如:

  • iPhone 14 Pro 的屏幕分辨率为 2556×1179,这意味着它有 2556×1179 个物理像素
  • 物理像素是硬件固定的,无法通过软件改变

逻辑像素

逻辑像素是 CSS 像素,是 Web 开发中使用的抽象单位。它是一个相对单位,浏览器会根据设备的特性将其映射到物理像素上。例如:

  • 当你设置width: 100px时,这里的 100px 指的是逻辑像素
  • 逻辑像素的大小会根据设备的 DPI(每英寸点数)自动调整

设备像素比(DPR)

定义

设备像素比(Device Pixel Ratio,简称 DPR)是物理像素与逻辑像素的比值:

DPR = 物理像素 / 逻辑像素

常见设备的 DPR 值

设备类型DPR 值说明
普通显示器11个逻辑像素 = 1个物理像素
iPhone 6/7/821个逻辑像素 = 2×2个物理像素
iPhone 14 Pro31个逻辑像素 = 3×3个物理像素
MacBook Pro (Retina)21个逻辑像素 = 2×2个物理像素

DPR 的作用

  1. 保持视觉一致性:通过 DPR,不同设备上相同逻辑像素的元素看起来大小相近
  2. 提高显示清晰度:高 DPR 设备用更多物理像素显示一个逻辑像素,使图像更清晰
  3. 响应式设计:开发者可以根据 DPR 调整图片和布局

在 JavaScript 中获取 DPR

// 获取设备像素比constdpr=window.devicePixelRatio||1;console.log('设备像素比:',dpr);

在 CSS 中处理 DPR

/* 针对高 DPR 设备加载高清图片 */@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.logo{background-image:url('logo@2x.png');background-size:100px 50px;}}/* 针对普通 DPR 设备 */@media(-webkit-max-device-pixel-ratio:1.5),(max-resolution:191dpi){.logo{background-image:url('logo.png');}}

在 Canvas 中处理 DPR

constcanvas=document.getElementById('myCanvas');constctx=canvas.getContext('2d');constdpr=window.devicePixelRatio||1;// 获取 CSS 设置的逻辑尺寸constrect=canvas.getBoundingClientRect();// 设置 canvas 的物理像素尺寸canvas.width=rect.width*dpr;canvas.height=rect.height*dpr;// 缩放绘图上下文,使绘图操作使用逻辑像素ctx.scale(dpr,dpr);// 现在可以使用逻辑像素进行绘图ctx.fillRect(0,0,100,100);// 实际上会在 200×200 的物理像素区域绘制

实际应用场景

  1. 图片适配:为不同 DPR 设备提供不同分辨率的图片(如image.png、image@2x.png、image@3x.png)
  2. Canvas 绘图:确保 Canvas 在高 DPI 屏幕上清晰显示
  3. 移动端开发:处理不同设备的显示差异
  4. 响应式设计:根据设备特性调整布局和字体大小

理解这些概念对于开发跨设备、跨平台的高质量 Web 应用非常重要!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 9:51:58

MAF快速入门(13)常见智能体编排模式

大家好,我是Edison。 最近我一直在跟着圣杰的《.NETAI智能体开发进阶》课程学习MAF开发多智能体工作流,我强烈推荐你也上车跟我一起出发! 上一篇,我们学习了MAF中如何进行子工作流。本篇,我们来了解下在MAF中如何快速…

作者头像 李华
网站建设 2026/10/2 9:52:03

《AI Flow: Perspectives, Scenarios, and Approaches》论文解读

《AI Flow: Perspectives, Scenarios, and Approaches》论文深度解读 (论文链接:https://arxiv.org/html/2506.12479v1,发布于2025年6月14日,领域:cs.AI) 一、论文基本信息 1. 核心团队与背景 作者单位&…

作者头像 李华
网站建设 2026/10/4 7:26:28

软件测试之单元测试

所谓单元测试指,指的是对软件中最小可测试单元开展细致的检查与验证工作。 具体而言,它主要用于检验单个类的准确性,确保其功能符合预期。 单元测试与集成测试、系统测试存在显著差异。它是软件开发流程中前置的测试环节,规模最…

作者头像 李华
网站建设 2026/10/2 10:32:50

day1-vue

1.vue是一个用于构建用户界面的渐进式框架构建用户界面:基于数据动态渲染页面渐进式:循序渐进框架:一套完整的项目解决方案vue使用方式:1.vue核心包开发——场景: 局部,模块改造 2.vue核心包&vu…

作者头像 李华