初识-移动端开发

146 阅读7分钟

设计规范(尺寸)

uiiiuiii.com/screen/inde…

相关概念

屏幕

屏幕大小

屏幕的大小指的是屏幕对角线的长度,单位是英寸(inch),常见的尺寸有:3.5、4.7、5.0、5.5、6.0寸等

注意:一英寸 = 2.54厘米

屏幕分辨率

分辨率是指屏幕在横向、纵向上所拥有的物理像素点的最大数量,一般使用n*m表示

例如:iphone6的屏幕分辨率为 750 * 1334

注意:

1、屏幕分辨率是一个固定值,这是无法改变的

2、屏幕分辨率和现实分辨率是两个概念,在电脑中可以设置的叫:显示分辨率

3、显示分辨率是当前屏幕所用到的像素点数量,也就是说:屏幕分辨率>=显示分辨率

常见手机分辨率:

屏幕密度

又叫“屏幕像素密度”,是指屏幕上每英寸里包含的物理像素点个数,单位是:ppi(pixels per inch),还有另一个单位:dpi(dots per inch),两个单位的计算方式都一样,只是使用的场景不同,ppi主要用来衡量屏幕,dpi主要用来衡量打印机等。

屏幕分辨率:X * Y

计算公式:

像素

物理像素

又叫设备像素,是一个长度单位,单位是px,一个物理像素就是屏幕上实际存在的一个物理成像点,就是屏幕中一个微小的物理元器件,是屏幕能显示的最小粒度,在屏幕生产后就无法修改

例如:iPhone6的横向的物理像素点为750,纵向的物理像素点为1334,也表示为750*1334

css像素

又叫逻辑像素,是一个抽象的长度单位,单位也是px,是由Web开发者创造的,用来精准的度量Web页面上的内容大小,在编写css、js、less、scss的时候,使用的都是css像素

设备独立像素

简称 DIP 或 DP(device-independent pixel),又称:屏幕密度无关像素

设备独立像素与物理像素的关系:

普通屏幕下 1 个设备独立像素对应 1 个物理像素

高清屏幕下 1 个设备独立像素对应 N 个物理像素

设备独立像素与css像素关系:

在无缩放的情况下(标准情况):1css像素 = 1设备独立像素

图片高清显示

位图像素

位图:

又称点阵图像或栅格图像,是由n个像素点组成的,放大后会失真,常见的格式有:png、jpeg、jpg、gif,一般使用PhotoShop等软件进行编辑

矢量图:

又称为面相对象图像或绘图图像,在数学上定义为一系列由线连接的点,放大不会失真,常见的格式有:svg,一般使用Adobe Illustrator(AI)、Sketch等软件进行编辑

位图像素也是一个长度单位,位图像素可以理解为位图中的一个小格子,是位图的最小单元

视口相关

布局视口

布局视口叫做LayOut viewport

移动端获取布局视口方式:document.documentElement.clintwidth

视觉视口

视觉视口又叫做visual viewport

视觉视口就是用户的可见区域,它的绝对宽度永远和设备屏幕一样宽,但这个宽度里所包含的css像素值是变化的

例如:一般手机会把980个css像素放入视觉视口中,而ipad Pro会把1024个css像素放入世界视口中

移动端获取视觉视口方式:window.innerWidth,但是在一些特定的时候无法正确获取,同时一般也不会通过代码查看视觉视口

理想视口标准

和屏幕(设备独立像素)等宽的布局视口,称之为理想视口,可以说理想视口是一种标准,让布局视口宽度与屏幕等宽(设备独立像素),靠标签实现

特点:

1、布局视口和屏幕等宽,以iPhone6为例,符合理想视口标准之后,设备独立像素:375px,布局视口宽度:375px

2、用户不需要缩放,直接滚动就能看到网站的全部内容

3、要为移动设备单独设计一个移动端的网站

设置理想视口的具体方法:

width : 布局视口的宽度

device-width :设备独立像素

<meta name="viewport" content="width=device-width" />

视口总结

不写meta标签(不符合理想视口标准的状态下)

1、描述屏幕

物理像素:750px

设备独立像素:375px

css像素:980px

2、优点

元素在尺寸不同的设备中显示的效果几乎一致,因为都是通过布局容器等比例缩放的,例如200px宽的盒子,所占的比例都是200/980

3、缺点

元素太小了,在小屏幕中不清楚,用户体验极差

写meta标签(符合理想视口标准的状态下)

1、描述屏幕

物理像素:750px

设备独立像素:375px

css像素:375px

2、优点:

页面清晰展现,内容不会小到模糊,难以观察,用户体验大大提高

会拥有更加清晰的像素关系:布局视口 = 视觉视口 = 物理像素 = 375px

会拥有更加清晰的dpr,即dpr = 物理像素/设备独立像素 = 物理像素/css像素

例如:dpr = 2 的设备,11 css像素 = 11 独立设备像素 = 2*2 物理像素

3、缺点

同一个元素,在不同的屏幕(设备)上,所呈现的效果是不一样的,例如375px宽的一个盒子,在屏幕宽度为375(比例:375/375)或414(比例:375/414)的设备上显示,比例就不同,所以显示效果也不一样

4、解决缺点

需要做屏幕的适配

PC端缩放

放大时:

视口变小

元素的css像素值不变,但一个css像素所占的面积变大了

缩小时:

视口变大

元素的css像素值不变,但一个css像素所占的面积变小了

移动端缩放

放大时:

布局视口不变

视觉窗口变小

缩小时:

布局窗口不变

视觉窗口变大.

缩放注意

移动端缩放不会影响页面的布局,因为缩放的时候布局视口没有变化

移动端的缩放不会改变布局视口中的任何东西

viewport说明

概念

meta-viewport标签时苹果公司在2007年引进的,用于移动端布局视口的控制

<meta name="viewport" content="width=device-width,initial-scale=1.0">

viewport的相关选项:

1、width:布局视口的宽度

2、initial-scale:(系统)初始缩放比例

3、maximum-scale:允许(用户)缩放的最大比例

4、minimum-scale:允许(用户)缩放的最小比例

5、user-scalable:是否允许用户缩放

6、viewport-fit:值设置为‘cover’可以解决刘海屏的留白问题

width

width的值可以是设备宽度标识(device-width),也可以是具体的值,但注意,有一些安卓手机并不支持具体值,IOS全系支持

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

initial-scale

1、initial-scale为页面初始化时的显示比例

2、initial-scale = 屏幕宽度(设备独立像素)/ 布局视口宽度

3、只写initial-scale = 1.0 也可以实现完美视口,但是为了良好的兼容性,width=device-width和initial-scale=1.0这两个一般都会一起写

<meta name="viewport" content="width=device-width,initial-scale=1.0">

maximum-scale

1、允许用户最大缩放比例,苹果浏览器不支持

2、maximum-scale = 屏幕宽度(独立设备像素)/ 视觉视口宽度值

<meta name="viewport" 
  content="width=device-width,initial-scale=1.0,maximum-scale=2.0">

minimum-scale

1、允许用户最小缩放比例

2、minimum-scale = 屏幕宽度(设备独立像素)/ 视觉视口宽度值

<meta name="viewport" 
  content="width=device-width,initial-scale=1.0,maximum-scale=2.0,minimum-scale=0.5">

user-scalable

是否允许用户通过手指缩放页面,苹果浏览器不支持

<meta name="viewport" 
  content="width=device-width,initial-scale=1.0,maximum-scale=2.0,minimum-scale=0.5,user-scalable=no">

viewport-fit

设置为cover可以解决‘刘海屏’的留白问题

<meta name="viewport" 
  content="width=device-width,initial-scale=1.0,maximum-scale=2.0,minimum-scale=0.5,user-scalable=no,viewport-fit=cover">

移动端最好写法

<meta name="viewport" 
  content="width=device-width,initial-scale=1.0,maximum-scale=1.0,
  minimum-scale=1.0,user-scalable=no,viewport-fit=cover">