移动端基础知识

一、物理像素

整个屏幕是由一个个的点组成的,每个屏幕上的点组成的,每个屏幕上的点一定是有限的。那么这些有限的点就叫做像素,或者叫物理像素physical pixel

二、分辨率

分辨率=画面水平方向的像素值*画面垂直方向的像素值

屏幕尺寸相同的手机,包含的像素点个数是不确定的,像素点越小,同一方向上容纳的像素点个数越多,图像显示越精细

三、CSS中的 1px 并不等于设备的1px

从iphone4开始,推出了所谓的Retina屏,分辨率提高了一倍,变成640*960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,1个CSS像素是等于4个物理像素的。

四、逻辑像素

逻辑像素也叫css像素设备独立像素(dpi:device independent pixel)

实际开发中使用的像素

.box{
    width:2px ;/*逻辑像素*/
    height:2px;/*逻辑像素*/
}
  1. 为了保证阅读体验的一致性,css像素可以自动在不同设备之间调节。
  2. 默认情况下,一个css像素等于一个物理像素的宽度。但是在高像素密度的设备上,css像素甚至在默认情况下相当于多个物理像素的尺寸。比如iPhone的屏幕对比一般的手机屏幕看起来更精致一些
  3. iPhone6,7,8都是两倍屏手机,即一个css像素等于两个物理像素。iPhone6PLUS等于三倍屏手机。即一个csss像素等于3个物理像素
  4. 以iPhone6为例,设计稿给出一个图片的宽高为40 * 40,在实际开发中要除以2,宽高要写成20 * 20,因为iPhone6是两倍屏手机。

五、设备像素比

dpr:device pixel ratio

der = 设备像素/css像素

六、缩放

物理像素是不能改变大小的

缩放其实就是改变1css像素等于多少个物理像素,换言之,就是1个css像素需要用多少个物理像素表示

1、放大

分析:上面是放大2倍时的效果

  • 原来,1个css像素=1个物理像素
  • 放大2倍,就是让1个css像素的宽和高都放大2倍,所以我们看到在右边屏幕上,放大2倍后,1个css像素就占用了4个像素点
  • 所以,放大2倍后,1个css像素=2x2个物理像素

2、缩小

分析:上面是缩小到1/2的效果

  • 原来1个css像素=1个物理像素
  • 缩小到1/2后,1个css像素的宽和高都缩小到原来的1/2,所以我们看到右边屏幕上,缩小后,4个css像素才等于1个css像素
  • 所以,缩小1/2后,2x2个css像素=1个物理像素

七、二倍图

对于一张40×40的图片在标清屏下打开1css像素=1物理像素

如果在 Retina 屏幕中打开,在单一方向上,1css像素=2个物理像素,这样会造成图片模糊

解决方案就是使用倍图提高图片质量,解决在高清设备中存在的模糊问题

解决方法

  • 比如希望在手机屏幕中显示一张100x100的图片
  • 先制作一张200x200 的图片
  • 通过css设置其逻辑尺寸为100x100
  • 高清屏下手机浏览器会放大2倍显示,正好是200x200,正好是图片本身尺寸
  • 注意:放大2倍,并不是图片的css尺寸放大2倍,而是使用2倍的物理像素点显示图片,会造成图片中的暗区等都爆露出来,造成模糊效果

八、视口

视口(viewport)就是浏览器 显示页面内容的屏幕区域。视口可以分布为

  • 布局视口
  • 视觉视口
  • 理想视口

1、布局视口(layout viewport)

早期的网页都是为pc端设置的,pc端屏幕相对手机屏幕要宽

为了在手机上也能够显示这些pc端专门设置的网页,出现了布局视口的概念

布局视口的宽度一般为980,也有1024

但手机屏幕要小很多,以iphone为例 ,屏幕宽度是375

那么就会出现下面的结果

2、视觉视口visual viewport

字面意思,他是用户正在看到的网站的区域。

3、理想是口ideal viewport

很明显,布局视口>视觉视口,所以会在视觉视口中出现滚动条,体验很差

理想视口,对设备来讲,是最理想的视口尺寸,为了使网站在移动端有最理想的浏览和阅读宽度而设定

需要设置meta标签进行设置

meta视口标签的主要目的:布局视口的宽度应该与理想视口的一致,简单理解就是设备有多宽,我们布局的视口就多宽

总结:我们开发最终会用理想视口,而理想视口就是将布局视口的宽度修改为视觉视口

4、meta标签(理想视口决定)

4.1、宽度设置

<html lang="en">
<head>
    <meta charset="UTF-8">    
    <title>Document</title>
    <style>
        .box{
            width: 300px; 
            height: 300px;
            background-color: #000;         
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>
</html>

需要设置如下代码

<meta name='viewport' content='width=device-width'>

让布局视口等于设备的宽度

4.2、缩放

页面在首次加载时,可能设置缩放比

<meta name='viewport' content='initial-scale=1'>

但是考虑到兼容性,仍然建议两个属性都要写

<meta name='viewport' content='width=device-width,initoal-scale=1.0'>

4.3用户缩放

手机端浏览器默认是允许用户通过触摸动作进行缩放的

可以通过下面的属性控制

user-scalable=no

aximum-scale=1,minimum=1

完整版

<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1,minimum=1,user-scalable=no"/>
  • 视口宽度和设备保持一致
  • 视口的默认缩放比例1.0
  • 不允许用户自行缩放
  • 最大允许的缩放比例1.0
    =1

完整版

```html
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1,minimum=1,user-scalable=no"/>
  • 视口宽度和设备保持一致
  • 视口的默认缩放比例1.0
  • 不允许用户自行缩放
  • 最大允许的缩放比例1.0
  • 最小允许的缩放比例1.0
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值