搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Cpp五条
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
springcloud-alibaba (06)RocketMQ控制台安装与启动_rocketmq 控制台端口
2
robotframework-ride生成新建机器人标志的快捷方式_ride创建快捷方式
3
【鸿蒙应用ArkTS开发系列】- http网络库使用讲解和封装_鸿蒙http封装
4
LeetCode高频题73. 矩阵置零_leetcode73
5
卸载 CLion_clion 卸载
6
PYNQ-Z2 镜像烧录&设备启动&网络设置
7
TensorFlow之数据读取_tensorflow.data
8
【AI热点技术】ChatGPT开源替代品——LLaMA系列之「羊驼家族」
9
Faster RCNN算法训练代码解析(1)
10
Android系统信息获取 之四:系统语言信息获取_locale.getdefault().getlanguage()
当前位置:
article
> 正文
移动端开发--物理像素和逻辑像素_在javascript中,可以使用window.devicepixelratio属性来获取设备的像素
作者:Cpp五条 | 2024-03-13 02:47:17
赞
踩
在javascript中,可以使用window.devicepixelratio属性来获取设备的像素密度。
虽说在在web app开发中,只需要掌握页面布局,页面适配,能够将页面完美在各种设备上展现。但是,为什么要这样做?这样做原理是什么?这么优点是什么?深究下去,大家不一定很清晰。
那么,咱们一起学习下~
一、2种像素
设备像素
设备像素是指设备中使用的物理像素,又称硬件像素
css像素
css像素是指css样式到吗中使用的逻辑像素。如果在一个设备中,硬件像素数与css像素数相等,将不会产生任何问题。但是,由于视网膜设备的出现,这两者之间的差异变得越来越大。硬件像素数与css像素数成为两种截然不同的像素。
例如在iphone 4设备屏幕中的物理像素是640px*960px,而css逻辑像素数为320*480px。因此,使用大约4个物理像素来显示一个css像素。
针对图像来说,web应用程序开发者们的目标是在尽量保证页面性能的前提下显示高质量的图片。
二、与像素相关的其他单位
什么是设备像素比(device pixel ratio)?
设备像素比是指设备像素与css像素之间的比例。当这个比率为1:1时,使用1个设备像素显示1个css像素。当这个比率为2:1时,使用4个设备像素显示1个css像素。当这个比率为3:1,使用9(3*3)个设备像素显示1个css像素。
什么是像素密度?
每英寸中多显示的像素数=ppi(pixels per inch)。在移动开发领域中,使用ppi来作为像素密度的单位。最近的移动设备中像素密度如下表所示。
像素密度与像素比之间的关系
虽然设备像素密度值越高,即每英寸中所显示像素数越多,设备屏幕中图像越清晰。但是设备像素密度值与设备像素比之间并没有直接关系。例如,在Galaxy S IV设备中,设备像素密度为441ppi,设备像素比为2,在HTC One设备中,设备像素密度为468ppi,设备像素比为3。
与设备像素比像素的dp像素与window.devicePixelRatio
Android设备中 独立于设备像素密度的dp像素
dp是创建Android应用程序时使用的一种独立与设备像素密度的像素单位。由于在160dpi(dots per inch:每英寸中显示的点数)的设备中,1px=1dp,因此在320dpi的设备中,1px=2dp,在480dpi的设备中,1px=3dp。
请注意:这个dp与前文所述设备像素比是两码事。
三、关于window.devicePixelRatio
在
Wikipedia网页
中记载了各种设备的设备像素比,本文并不进行具体描述。这里我们只介绍一下window.device
PixelRatio。
在JavaScript脚本程序中,可以使用window,devicePixelRatio取得设备的设备像素比。
window.devicePixelRatio的注意点
另外,在使用window.devicePivelRatio的时候,有一下两点需要注意:
1. 在Firefox浏览器与IE浏览器中不支持window.devicePixelRatio。
2、在同一设备中的不同浏览器中的window.devicePixelRatio值有可能不同。
例如,在720*1200px的Galaxy Nexus设备中,在Android浏览器与Chrome浏览器中的window.devicePixelRatio值是2,在Opera浏览器中的window.devicePixelRatio值为2.25.由于在Android浏览器与chrome浏览器中的css像素数为360px在Opera浏览器中的css像素数为320px所以设备像素比的计算方式如下所示:
在Android浏览器与Chrome浏览器中
720 / 360 = 2
在Opera浏览器中
720/320 = 2.25
在iphone 5的Safari浏览器,Chrome浏览器与Opera浏览器中的设备像素比分别为2、2、1.
四、使用媒体查询表达式
为了在高分辨率设备中显示清晰的图像,可以使用某提查询表达式-webkit-device-pixel-ratio特性。接下来,我们首先对-webkit-device-pixel-ratio特性做一介绍,然后,介绍媒体查询表达式的resolution特性,最后,总结下如何为高分辨率设备使用媒体查询表达式。
-webkit-device-pixel-ratio
-webkit-device-pixel-ratio原本是针对苹果的视网膜设备进行开发时为了将设备像素转换成css像素时使用的一个媒体查询表达式特性,后来该特性在Android设备中得到了支持。 在Safari开发者说明中针对这一特性,有着如下所示的定义:
"-webkit-device-pixel-ratio":苹果设备中使用的特殊比例:2代表视网膜屏幕,1代表标准屏幕。在Safari 4.0以上浏览器中支持。
此处并没有对该比例进行详细说明,只说1代表标准屏幕,2代表视网膜屏幕。但是,在iphone 4中的device-pixel-ratio(设备像素比)为2,设备像素数为css像素数的2倍(640/320px),device-pixel-ratio=设备像素数/css像素数
Android设备中的-webkit-device-pixel-ratio
在Android设备开发者专用web网站中,针对-webkit-device-pixel-ratio有着如下所示的定义:
“在Android浏览器与WebView浏览器中,支持针对特定像素密度创建样式时所使用的-webkit-device-pixel-ratio。可指定值为0.75、1与1.5,分别代表低像素密度屏幕、中像素密度屏幕和高屏幕屏幕”。
原文链接
http://html5online.com.cn/articles/2013041701.html
本文内容由网友自发贡献,转载请注明出处:
https://www.wpsshop.cn/w/Cpp五条/article/detail/227391
推荐阅读
article
部署
scrapy
分布式
爬虫_
scrapy
分布式
window
...
部署
scrapy
分布式
爬虫系统版本为:win10 python3.7要求:两台及两台以上电脑,其中一台电脑上面安装了M...
赞
踩
article
【JS】【
Vue
3】【
React
】
获取
鼠标
位置
的方法:
JavaScript
、
Vue
3和
React
示...
随着Web应用程序的复杂性不断增加,
获取
用户交互信息变得越来越重要。其中,
获取
鼠标
位置
是一项常见的任务,可以用于实现各种...
赞
踩
article
时钟显示
html
JavaScript
...
时钟 年月日 显示时钟显示
html
JavaScript
sf.
html
<!DOCTY...
赞
踩
article
【2023华为
od
-第二题-求
幸存
者之和】
100%
通过率
(
Java
Script&
Java
&Pytho...
个数字,命中索引为$ J+1$ 的数字,该数被敲出,并从该点起跳,以此类推,直到
幸存
left
个数为止,然后返回
幸存
数之和...
赞
踩
article
window
.
print
() 前端
页面
打印
与预览
PDF
...
window
.
print
()
打印
是浏览器自带的
打印
,实现原理是将html转换为pdf可以在线预览
打印
或者导出pdf,在任...
赞
踩
article
华为OD机试 - 求
幸存
数
之和(
Python
、
Java
、C++、
Java
script)...
给一个正整
数
数
列 nums,一个跳
数
jump,及
幸存
数
量 left。运算过程为:从索引0的位置开始向后跳,中间跳过 J...
赞
踩
article
【华为OD机试真题】
跳房子
I
HUAWEI
(C++&
java
&
python
&JavaScr
i
pt&g...
已支持(C++&
java
&
python
&JavaScr
i
pt&go)
100%
通过率_
java
跳房子
i
java
跳房子
i
...
赞
踩
article
Window
系统
下
Java
环境搭建_
jdk
-
8u241
-
windows
-x64...
1、如果你是32位
系统
下载
jdk
-
8u241
-
windows
-i586.exe(32位);2、如果你是64位
系统
下载 ...
赞
踩
article
Window
下
ChromeDriver
配置
、
安
装
与验证_如何查看
装
了
chromedrive
...
chromedrive
r的
下
载和
配置
使用selenium时,需要用到不同浏览器的driver。 我常用chromedri...
赞
踩
article
Window
下配置
ChromeDriver
(简单4步完成)_
google
drive
120.0
....
第一步:当然是下载最新的chrome浏览器版本 https://www.
google
.cn/chrome/第二步:下载最...
赞
踩
article
【
华为
OD统一考试A卷 | 100分】最大连续
文件
之和 /
区块
链
文件
转储
系统(C++
Java
J...
区块
链
底层存储是一个
链
式
文件
系统,由顺序的N个
文件
组成,每个
文件
的大小不一,依次为F1,F
2
,...,Fn。随着时间的推...
赞
踩
article
Window
10
未连接到
互联网
_
校园网
检查
代理服务器
和
防火墙
...
未连接到
互联网
、
代理服务器
出现问题,或者地址有误。请试试以下办法:联系系统管理员、检查
代理服务器
地址、运行
Window
...
赞
踩
article
javascript
测试
工具
汇总_
js
自测
工具
...
Google JS TestGoogle JS Test是一个运行于V8 JavaScript引擎下的Javascrip...
赞
踩
article
【
JavaScript
】详解
JavaScript
中
的
replace
()
函数
_
js
replace
...
replace
()
函数
详解
_
js
replace
js
replace
...
赞
踩
article
【
JavaScript
replace
】
匹配
*星号
问题
_
js
匹配
第二字符后面的*号...
【
JavaScript
replace
】
匹配
*星号
问题
在使用
replace
/*/
问题
replace
All
问题
在使用r...
赞
踩
article
【
华为
OD机考 统一考试
机试
C卷】
生成
哈夫曼
树(C++
Java
Java
S
c
ript
Python
...
给定长度为 n nn 的无序的数字数组,每个数字代表二叉树的叶子节点的权值,数字数组的值均大于等于 1 11 。请完成一...
赞
踩
article
【2023华为od-C卷-第一题-
机器人
搬
砖
】
100%
通过率(
Java
Scr
i
pt&
Java
&Pyt...
机器人
搬
砖
,
一共
有
N
堆
砖
存放
在N个不同的仓库中,第
i
堆
中
有
br
i
cks
i
块
砖
头,要求在8小时内搬完。
机器人
每小时能搬
砖
的...
赞
踩
article
【
华为
OD机考 统一考试机试C卷】
机器人
仓库
搬砖(C++
Java
Java
Script Pyth...
机器人
搬砖,一共有N堆砖存放在N个不同的
仓库
中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。
机器人
每小时能...
赞
踩
article
Vim
扫盲:
buffer
,
window
,
tab
_
vim
显示
buffer
line...
Vim
中的
window
和
tab
非常具有迷惑性,跟我们平时所说的 “窗口” 和 “标签页” ,是完全不同的两个概...
赞
踩
article
[
Vim
]如何理解并正确使用
Vim
中的
Buffer
、
Window
和
Tab
_
buffer
w...
如何理解并正确使用
Vim
中的
Buffer
、
Window
和
Tab
写在前面上周偶然读到了这篇
Vim
Tab
Ma...
赞
踩
相关标签
python
scrapy分布式爬虫
javascript
vue.js
react.js
html
前端
java
华为od
css
c++
算法
华为OD机试
go
单元测试
职场和发展
程序人生
软件测试
自动化测试