手机屏幕物理点击器是什么原理_深入浅出 Viewport 设计原理

Viewport 是 HTML5 针对移动端开发新增的一个 meta 属性, 它的作用是为同一网页在不同设备的呈现,提供响应式解决方案。这篇文章尝试通过循序渐进的方式,逐层探索 Viewport 的设计原理,希望能给读者带来更加清晰、更加全面的技术认知。

一、引言

在PC时代,我们用 css 设置 1px 边框,显示器会用1个物理像素进行渲染。而进入移动应用时代后,我们原来设置1px边框,在手机上可能需要用 2 个或 3 个物理像素来渲染。

那么,手机为什么要这么做?解决了什么问题?以及我们开发过程中需要做什么?

下面,我们将带着这些问题来一步步探索移动端 Viewport 设计原理,以及如何利用 Viewport 进行移动端适配。

二、基础概念

1、屏幕尺寸

屏幕尺寸指的是手机屏幕对角线的长度,知道屏幕的宽度(width)和高度(height),通过勾股定理就可以算出对角线的长度:

b89986b6ee88f73a4ec6c28a15adf7e1.png

diagonal 就是屏幕对角线的长度,单位是毫米(mm), 然后再把这个长度换算成 “英寸(inch)”,就是我们平时所说的手机尺寸。

1 英寸等于 25.4mm,即:

636489d99ac3a7af5e45ce53e7959ae3.png

比如 iPhone 的尺寸 3.5寸、4寸、4.7寸、5.5寸 就是这样计算出来的。

e16dd3625d035f51a38d6a9116fa4a57.png

2、物理像素

我们在手机屏幕上看到的画面,本质上都是由一个个发光的物理像素组成,物理像素是构成屏幕图像的最小单元。

我们常说的屏幕分辨率,就是指这个屏幕上拥有多少个物理像素。

比如: iPhone4 的分辨率是 640 × 960,即屏幕在水平方向上有 640 个像素,在垂直方向上有 960 个像素。

f680cb6f98bf0ef00c7234c9e29ef7cb.png

通常,设计师给的UI设计稿上的“px”指的就是物理像素。

3、像素密度 - PPI

PPI(Pixel Per Inch by diagonal):表示对角线上每英寸所拥有的像素个数。

计算PPI,可以先利用勾股定理计算出对角线上的像素数,然后再除以屏幕尺寸,即:

f9a89e6f54d949fb4bd4a52c128828f8.png

把 iPhone 4 屏幕数据代入公式,即可得出 iPhone4 的 PPI :

dcf478404cd55fce5cb22ed951aff84b.png

PPI 的值越大,每英寸屏幕上的物理像素点就越多越密集,渲染出来的画面也更加细腻、清晰。

81e9357ec1632617171a8526cdf1ddce.png

比如,iPhone3GS 和 iPhone4 拥有相同大小的屏幕尺寸。但前者的分辨率是 320*480,可以算出PPI为 163,而后者的分辨率是 640*960, PPI 是32

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue2中,可以通过设置viewport的meta标签来实现响应式设计,使页面在不同屏幕尺寸下都能正常显示。具体实现方法如下: 1. 设置viewport的meta标签 在head标签中添加以下代码: ```html <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> ``` 其中,width=device-width表示设备宽度,initial-scale=1.0表示初始缩放比例为1,maximum-scale=1.0表示最大缩放比例为1,user-scalable=no表示禁止用户缩放页面。 2. 使用CSS媒体查询 使用CSS媒体查询可以根据不同的屏幕尺寸设置不同的样式。例如: ```css /* 设置手机横屏的样式 */ @media screen and (orientation:landscape) { /* 样式 */ } /* 设置手机竖屏的样式 */ @media screen and (orientation:portrait) { /* 样式 */ } /* 设置窄屏幕的样式 */ @media screen and (max-width: 640px) { /* 样式 */ } /* 设置中等屏幕的样式 */ @media screen and (min-width: 641px) and (max-width: 1024px) { /* 样式 */ } /* 设置宽屏幕的样式 */ @media screen and (min-width: 1025px) { /* 样式 */ } ``` 3. 使用CSS3的弹性盒子布局 使用CSS3的弹性盒子布局可以根据不同的屏幕尺寸自动调整布局。例如: ```css .container { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; } .item { flex: 1; margin: 10px; } ``` 以上代码将.container设置为弹性盒子布局,使子元素.item自动调整布局。 综上所述,基于viewport进行响应式设计需要设置viewport的meta标签,使用CSS媒体查询和CSS3的弹性盒子布局等技术,根据不同的屏幕尺寸设置不同的样式和布局。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值