移动端像素与viewPort

本文探讨了移动端的viewport概念,包括它在设备屏幕上的作用。内容详细讲解了CSS像素与设备物理像素的区别,特别是在不同设备和用户缩放情况下的差异。同时,介绍了移动端的三个viewport:layout viewport、visual viewport和ideal viewport,并强调了devicePixelRatio属性在确定CSS像素与物理像素关系中的作用。最后,提到了如何通过meta标签对viewport进行控制。

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

viewport是什么?

设备屏幕上能用来显示网页的哪一块区域。具体点说 ,就是浏览器或APP的webview用来显示网页的那部分区域。

css中的像素与设备的物理像素

在css中我们一般使用px作为单位,在桌面浏览器中css的1个像素往往都是对应着电脑屏幕的1个物理像素,这可能会造成我们的一个错觉,那就是css中的像素就是设备的物理像素。但实际情况却并非如此,css中的像素只是一个抽象的单位,在不同的设备或不同的环境中,css中的1px所代表的设备物理像素是不同的。在移动设备上,必须明白这点。安卓设备根据屏幕像素密度可分为ldpi、mdpi、hdpi、xhdpi等不同的等级,分辨率也是五花八门,安卓设备上的一个css像素相当于多少个屏幕物理像素,也因设备的不同而不同,没有一个定论。用户缩放也会引起css中px的变化。
在移动端浏览器中以及某些桌面浏览器中,window对象有一个devicePixelRatio属性,它的官方的定义为:设备物理像素和设备独立像素的比例,也就是devicePixelRatio = 物理像素 / 独立像素。css中的px就可以看做是设备的独立像素,所以通过devicePixelRatio,我们可以知道该设备上一个css像素代表多少个物理像素。但是要注意的是,devicePixelRatio在不同的浏览器中还存在些许的兼容性问题。

三个viewport

  1. layout viewport 是网页的全部内容,它可以全部或部分的展示给客户。layout viewport 的宽度一般是大于浏览器可视区域的宽度的。可通过document.documentElement.clientWidth获取。IE浏览器是通过document.body.clientWidth获取。
  2. visual viewport 就是当前显示给用户内容的窗口,你可以拖动或者放大缩小网页。
  3. ideal viewport: 移动设备的理想viewport。

meta标签对viewport进行控制

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0,minimum-scale=1.0 user-scalable=0">
属性名备注
width设置layout viewport 的宽度,为一个正整数,使用字符串”width-device”表示设备宽度
initial-scale设置页面的初始缩放值,为一个数字,可以带小数
minimum-scale允许用户的最小缩放值,为一个数字,可以带小数
maximum-scale允许用户的最大缩放值,为一个数字,可以带小数
height设置layout viewport 的高度,这个属性对我们并不重要,很少使用
user-scalable允许用户的最小缩放值,为一个数字,可以带小数
height是否允许用户进行缩放,值为”no”或”yes”, no 代表不允许,yes代表允许 也可用”0”和”1”表示
target-densitydpi值可以为一个数值或 high-dpi 、 medium-dpi、 low-dpi、 device-dpi 这几个字符串中的一个(安卓特有)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值