Java开发者职业突围:技术深度与职业转型指南
2026/9/16 23:23:43
物理像素是指设备屏幕上实际存在的发光点,是屏幕显示的最小物理单位。例如:
逻辑像素是 CSS 像素,是 Web 开发中使用的抽象单位。它是一个相对单位,浏览器会根据设备的特性将其映射到物理像素上。例如:
width: 100px时,这里的 100px 指的是逻辑像素设备像素比(Device Pixel Ratio,简称 DPR)是物理像素与逻辑像素的比值:
DPR = 物理像素 / 逻辑像素| 设备类型 | DPR 值 | 说明 |
|---|---|---|
| 普通显示器 | 1 | 1个逻辑像素 = 1个物理像素 |
| iPhone 6/7/8 | 2 | 1个逻辑像素 = 2×2个物理像素 |
| iPhone 14 Pro | 3 | 1个逻辑像素 = 3×3个物理像素 |
| MacBook Pro (Retina) | 2 | 1个逻辑像素 = 2×2个物理像素 |
// 获取设备像素比constdpr=window.devicePixelRatio||1;console.log('设备像素比:',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');}}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 的物理像素区域绘制image.png、image@2x.png、image@3x.png)理解这些概念对于开发跨设备、跨平台的高质量 Web 应用非常重要!