[转]手机的设备独立像素、分辨率和设备像素比到底是什么?

搜索了一些文章,这篇文章讲的是比较清楚的。
https://learnku.com/articles/7309/what-is-the-independent-pixel-resolution-and-device-pixel-of-the-device-for-a-mobile-phone

本篇文章介绍移动端网页开发中要遇到的一些概念,理解了这些概念,你就可以快速入门移动端网页开发了。

需要注意的是:电脑上并没有设备独立像素的概念,这里也不会做介绍。

在这之前,我先介绍一下我用的手机,我用它来说明这些概念。

我有一台坚果 Pro
坚果 Pro 的一些参数信息如下:

设备独立像素:360 * 640。
分辨率:1080 * 1920。
设备像素比:3。
设备像素比
设备像素比,英文名是 Device Pixel Ratio,简称 DPR。但我想说的重点不是这个,我想说:设备像素比 = 分辨率 / 设备独立像素。

我们可以用 JavaScript 的 window.devicePixelRatio 接口获得这个值。

分辨率
我写了一个网页,里面有一个 div,长 360px,宽 640px。

我们用手机打开来 看一下 。

能看到,div 占据了手机水平宽度的 1/3,手机垂直高度的 1/3(上下 bar 的高度计算在内)。

这里就得出一个结论:1 CSS 像素等于 1 单位的分辨率。

需要注意的是,我们并没有能够获得手机分辨率的 JavaScript 接口。

但如果把这样的网页直接在手机上浏览,看起来就不是很方便。

把整个网页都显示在手机小小的一方屏幕上,看起来字太小了,为了看清,我们势必要放大来看。

如果 是这样的,就好了。

为了能做到这样,就要知道设备独立像素了。

设备独立像素
为了让网页适配移动端,我们通常要在网页的 head 里头加上这样一个 meta 标签。

这样的结果是:1 CSS 像素等于 1 单位的设备独立像素,等于 3 个单位(针对坚果 Pro)的分辨率了。

此时再打开页面 查看。

可以看到,div 的宽度刚好充满手机宽度(而在高度上富裕出来的空间是因为有上下 bar 占据手机屏幕高度的原因,否则也是刚好充满屏幕高度的)。

使用 JavaScript 的 window.screen.width 和 window.screen.height 就能获得设备独立像素。

图片渲染的问题
设置好适配移动端的 meta 标签后,网页里的文字和颜色之类的渲染是没有问题的,但是图片渲染就会有问题。

举个例子,网页里有一个设定宽 128px、高 85px 的图片

img {
width: 128px;
height: 85px;
}
如果我们直接采用 128px * 85px 大小的图片,那么在 手机上看就会模糊。

根本原因是:图片的 1 像素始终等于 1 单位分辨率,但是坚果 Pro 却用 3 * 3 的分辨率阵容渲染图片上的每块像素----也就是把图片放大了 3 倍显示。

所以针对坚果 Pro 这种设备像素比是 3 的手机,网页里插入的图片尺寸总要是网页中设定宽高的 3 倍,才能保证图片在消耗最少带宽的情况下 保证图片的清晰度。

右面图片的尺寸是 384px * 255px,可以看到是清晰的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值