CSS像素 物理像素 分辨率 PPI

本文详细解析了屏幕尺寸、分辨率、像素密度等概念,并探讨了它们之间的关系。同时介绍了移动端的物理像素与CSS像素的区别及如何通过meta标签实现理想视口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然自己平时也在写响应式的网站,但是对于像素,分辨率,物理像素几个概念还是有点理不清楚,下面是我看了一些文章和自己的总结记录下来的文章,以免后面自己又忘记。

这里着重参考了 第一篇文章:http://www.jianshu.com/p/c3387bcc4f6e    

  第二篇文章 :https://segmentfault.com/a/1190000004383049

什么是英寸?屏幕尺寸的计算。

一般说手机多大,都是说手机多少寸,但实际应该说是英寸,因为手机发布出来的时候都是以英寸为单位。见下图:


主屏尺寸5.2英寸就是手机尺寸大小,这个不是面积,它是长度。另外换算成厘米是 1英寸x2.54厘米 

他不是面积单位,那长度指的是手机什么地方的长度呢?应该是对角线的长度(长度为物理长度,理解为拿直尺量出来的)。见下图:


分辨率是什么?

分辨率指的是一个固定大小的屏幕有多少个像素。

那像素又是什么?见下图



上图中一个个一个小格子就是像素,一个格子就是一个像素。像我的电脑分辨率为1920像素*1080像素,

可以理解为横排有1920个小格子,竖排有1080个小格子。他们组合起来形成了1920*1080分辨率。所以,可以说像素是分辨率的单位。

像素密度

像素的密度是指对角线为一英寸长时有多少个像素小格子,见下图

                            


左边的5.2英寸,我取其中一英寸长度,放大就是右边图,红框内就是一英寸长作为红框的对角线。这个红框内能容纳多少像素,就是这个手机的像素密度。(存疑)

下面图是像素密度,分辨率和屏幕尺寸的公式。



按上图横向是1080px²+纵向1920px²再开平方就得到了对角线的像素个数,就是勾股定理求第三条边公式。得到对象线像素的个数再除以对角线长度,就是每英寸有多少个像素了,这就是像素密度(PPI

像素的大小不是固定的。




上面第一张图是苹果手机屏幕参数,第二张图是华为手机屏幕参数。

先看苹果手机,屏幕为5.0英寸,需要容纳1920*1080个像素,而华为5.2英寸,也是容纳1920*1080个像素。也就是说苹果手机的一个像素要比华为手机的一个像素要小才能容纳得下相同个数的像素。一英寸为对角线的长方形内的像素多少就是整个屏幕的像素密度了。


电脑的分辨率调节是如何调节的


上图中分辨率可以随意选择调节。最高是1366*768(推荐的),也就是说屏幕大小的像素个数,横为1366个像素,竖为768个像素。这个横竖的像素多少其实是固定的,在厂商做这个屏幕的时候就已经设置好的。当上面调整分辨率的时候,比如调整成800*600的时候,难道意思是横800个像素,竖600个像素吗?其实不是的,调成800*600之后他的横竖的像素个数还是一样多的,因为前面说了,出厂的时候像素多少屏幕就已经设置好了的。当调成800*600,其实是有效像素个数为800*600,其余少的像素格子就用模拟色彩块填充。所以分辨率的大小比较其实是不同设备,不同屏幕之间才会有分辨率大小的区分。同一台设备的分辨率其实已经在出厂的时候已经设置好了。

-------------------------------------------------------------移动端分辨率----------------------------------------------------------------

本来想晚上再查一下,为什么pc电脑已经设置好了分辨率多少,像素大小了,还要给出很多选择呢,感觉多余。结果看到了手机端的物理像素和css像素问题,觉得自己还有很多没搞懂。

参考文章:http://www.cnblogs.com/2050/p/3877280.html

css的1px和设备上的1个物理像素完全是两个概念。只是在pc端,一个物理像素就等于一个css的1px长度而已。所以你在网页中用css设置元素长度1920px,在分辨率为1920px*1080px分辨电脑上,长度刚好相等。

pc端一个物理像素就等于一个css的1px长度,所以很简单,不用我们操心。

但是在移动端一个css的一个像素就不等于设备的一个物理像素了。那css的像素和移动端设备的物理像素怎么换算呢,我也没搞明白,只知道在iphone3的分辨率为 320px * 480px时的一个物理像素与css的一个像素相等。从iphone4开始,苹果公司便推出了所谓的Retina屏,分辨率提高了一倍,变成640x960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,一个css像素是等于两个物理像素的。

这里出现了关于移动端的三个概念:

一个是layout viewport  一个是visual viewport  还有一个是ideal viewport

最后一个最重要,就是ideal viewport ,他是完美适配移动端的viewport,我们css的长度320px和这个设备的 ideal viewport 320相等 



另一个很重要的是我们写响应式的时候,用@media screen and (max-width:320px)  媒体查询的时候,查询的其实就是这个ideal viewport ,而且我们浏览器移动端调试尺寸也是这个ideal viewport 。


ideal viewport  长宽等于 设备的尺寸长宽  又和css的一个像素值相等。所以这个是最理想的ideal viewport 。

ideal viewport并没有一个固定的尺寸,不同的设备拥有有不同的ideal viewport。

 移动设备默认的viewport是layout viewport(不明白layout viewport的看我上面推荐的那篇文章),但在进行移动设备网站的开发时,我们需要的是ideal viewport。那么怎么才能得到ideal viewport呢?这就该轮到meta标签出场了。


我们在开发移动设备的网站时,最常见的的一个动作就是把下面这个东西复制到我们的head标签中:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

在开发响应式移动端时候,有很多概念没搞清,写这边文章也是督促自己去看其它资料来搞明白。现在搞清楚了一些,还有一些没搞清楚。

比如,设计师设计移动端页面大小应该是多少,768px*1024px吗?这个是ipad mini平板的尺寸。那做成手机端应该如何切图?


<think>我们正在讨论CSS像素和设备独立像素的概念及其区别。根据提供的引用内容,我们可以整理出以下关键点:引用[1]中提到:-CSS像素具有相对性。当设备像素比(dpr)为1时,1个CSS像素对应1个物理像素。-当用户进行放大操作后,1个CSS像素可能对应多个物理像素(例如,放大后1个CSS像素对应2个物理像素)。-在高PPI(每英寸像素数)的设备上,默认状态下1个CSS像素对应多个物理像素,从而使显示更清晰。引用[2]和引用[3]主要展示了CSS代码示例,与当前问题关联不大,因此我们主要参考引用[1]。现在,我们需要详细解释CSS像素和设备独立像素(也称为逻辑像素)的概念及其区别。###概念解释1.**物理像素(PhysicalPixels)**:-物理像素是显示设备上最小的物理显示单元,每个像素对应屏幕上的一个发光点。例如,一个1920×1080的屏幕有1920列和1080行物理像素。2.**设备独立像素(DeviceIndependentPixels,DIPs)**:-设备独立像素是一种抽象单位,用于在不同密度的屏幕上保持一致的视觉大小。它独立于物理像素,由操作系统管理。在相同距离和视角下,一个设备独立像素在不同密度的屏幕上应该看起来差不多大。-在移动设备上,设备独立像素通常对应标准视觉角度下的一个点(大约1/160英寸)。例如,在dpr=2的设备上,1个设备独立像素对应2×2个物理像素。3.**CSS像素CSSPixels)**:-CSS像素是Web开发中使用的单位。在CSS中,我们使用像素(px)作为单位,这里的像素指的就是CSS像素。-CSS像素是一个相对单位,它的实际大小取决于设备像素比(dpr)和缩放级别。-默认情况下(dpr=1且无缩放),1个CSS像素等于1个设备独立像素,同时也等于1个物理像素。-当dpr>1(如Retina屏幕)时,1个设备独立像素对应多个物理像素,而1个CSS像素在默认情况下等于1个设备独立像素(因此也等于多个物理像素)。-当用户缩放页面时,CSS像素的大小会发生变化。例如,放大页面时,1个CSS像素会覆盖更多的物理像素,因此每个CSS像素会变大。###区别详解-**CSS像素与设备独立像素的关系**:-在标准情况下(dpr=1,无缩放),1个CSS像素等于1个设备独立像素,也等于1个物理像素。-在高密度屏幕(dpr>1)上,1个设备独立像素对应多个物理像素。此时,1个CSS像素仍然等于1个设备独立像素(因此也对应多个物理像素)。-当用户缩放页面时(例如放大到200%),1个CSS像素会覆盖原来2倍的物理像素(在dpr=1的设备上,放大后1个CSS像素对应2×2个物理像素;在dpr=2的设备上,放大后1个CSS像素对应4×4个物理像素)。但注意,缩放操作改变的是CSS像素相对于设备独立像素的比例。例如,放大200%后,1个设备独立像素现在对应0.5个CSS像素(因为CSS像素变大了)。-**关键区别**:-**设备独立像素**是操作系统定义的抽象层,用于保证不同设备上显示内容的大小一致性(即视觉大小相同)。-**CSS像素**是Web开发中使用的单位,它会受到设备像素比和用户缩放的影响,因此它的实际物理大小可能变化。###示例说明假设有一个设备,其物理分辨率为1920×1080,dpr=2,屏幕尺寸为5英寸(对角线)。-设备独立像素:由于dpr=2,设备独立像素的宽度为1920/2=960px(这里px指设备独立像素),高度为1080/2=540px。-默认情况下(无缩放),1个CSS像素等于1个设备独立像素。因此,一个100px×100px的CSS盒子,在设备独立像素中也是100×100,但对应物理像素为200×200(因为dpr=2)。-如果用户放大页面200%(即缩放因子为2),那么1个CSS像素将变得更大。此时,1个CSS像素对应2个设备独立像素(在宽度和高度方向各2倍),因此同一个100px×100px的CSS盒子,在设备独立像素中占据200×200,在物理像素中占据400×400。###总结-**设备独立像素**:由操作系统定义,用于保证不同设备上视觉大小的一致性。-**CSS像素**:Web开发使用的单位,其实际大小取决于设备像素比(dpr)和用户缩放操作。在开发响应式网页时,我们通常使用CSS像素进行设计,但需要理解其在不同设备上的表现。为了适应不同屏幕,可以使用媒体查询、相对单位(如em、rem)等技术。[^1]:CSS像素等相关概念详解§§相关问题§§1.设备像素比(dpr)是如何计算的?2.在CSS中,如何根据设备像素比提供不同分辨率的图像?3.如何通过JavaScript获取设备的设备像素比?</think>### CSS像素与设备独立像素详解 #### 一、核心概念定义 1. **CSS像素** - Web开发中使用的逻辑单位,用于定义页面元素尺寸(如 `width: 100px;`) - 具有**相对性**:其实际物理尺寸会受设备像素比(dpr)和用户缩放影响 - 示例:当 `dpr=2` 时,1个CSS像素对应4个物理像素(2×2)[^1] 2. **设备独立像素(DIP/Density-Independent Pixel)** - 操作系统定义的抽象单位,保证不同密度屏幕上**视觉尺寸一致性** - 与设备物理特性解耦,1 DIP ≈ 1/160英寸(Android标准) - 示例:10×10 DIP的按钮在低/高密度屏上视觉大小相同 #### 二、关键区别对比 | 特性 | CSS像素 | 设备独立像素 (DIP) | |--------------------|----------------------------|----------------------------| | **定义方** | CSS规范 | 操作系统 (iOS/Android等) | | **核心目的** | 网页布局控制 | 跨设备统一视觉尺寸 | | **与物理像素关系** | 通过dpr动态映射 | 通过系统缩放因子固定映射 | | **缩放影响** | 值不变但物理尺寸变化[^1] | 值自动调整以保持视觉大小 | | **开发使用场景** | 网页样式定义 | 原生应用UI设计 | #### 三、工作原理解析 1. **默认状态 (dpr=1)** $$ 1\ \text{CSS像素} = 1\ \text{DIP} = 1\ \text{物理像素} $$ ```css /* 此时100px元素占用100物理像素 */ .box { width: 100px; } ``` 2. **高密度屏 (dpr=2)** $$ 1\ \text{CSS像素} = 1\ \text{DIP} = 2×2\ \text{物理像素} $$ - 同一CSS值显示更精细(如Retina屏效果)[^1] 3. **用户缩放页面时** - 放大200%:1 CSS像素 → 覆盖4倍物理像素 - DIP自动重计算保持元素视觉大小不变 #### 四、实际开发影响 1. **响应式设计** 需结合viewport元标签控制CSS像素缩放: ```html <meta name="viewport" content="width=device-width, initial-scale=1"> ``` - `device-width` 表示使用设备独立像素宽度 2. **高清图像适配** 根据dpr提供多倍图: ```css .logo { background-image: url(icon.png); /* 为dpr=2设备加载2倍图 */ @media (-webkit-min-device-pixel-ratio: 2) { background-image: url(icon@2x.png); } } ``` 3. **单位转换关系** $$ \text{物理像素} = \text{CSS像素} × \text{dpr} $$ $$ \text{DIP} = \frac{\text{物理像素}}{\text{dpr}} $$ #### 五、典型误区澄清 - ❌ "1 CSS像素永远等于1个屏幕点" ✅ 实际:CSS像素是相对单位,其物理大小由设备决定[^1] - ❌ "高dpr设备需要写更大CSS值" ✅ 正确:使用标准CSS值(如100px),系统自动处理高清渲染 [^1]: CSS像素具有相对性,在高PPI设备上默认对应多个物理像素实现高清显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值