移动端
移动端开发概念
移动端开发
- 区别于传统的页面开发,移动端开发是指利用移动设备的特性以及css3提供的各种相对单位来实现移动端页面布局开发。
- 移动设备是指便携的移动电子设备。包括手机、平板、小屏幕电脑等。
为什么不直接使用响应式布局
- 布局不匹配:pc端一般屏幕较大,可以显示更多的东西,而移动设备屏幕空间有限,只能显示部分内容。
- 代码量太大:针对pc、移动端会写不同版本的css。
屏幕的基本概念
屏幕的尺寸-英寸
- 英寸是一个长度单位,1英寸约等于2.54厘米。
- 手机中的英寸是指手机屏幕对角线的长度为多少英寸。比如iPhone6的屏幕尺寸是4.7英寸,指iPhone6的屏幕对角线尺寸为4.7*2.54厘米
- 屏幕尺寸大全:https://uiiiuiii.com/screen/
像素
- 是指屏幕上最小的一个方块,每个方块可以存放一种颜色。无数个像素的结合就可以形成图像
- 平时所说的分辨率就是指屏幕上有多少个小方块(像素)
设备物理像素(手机分辨率)
- 比如说iPhone6的物理分辨率是750 x 1334.指的是iPhone6屏幕水平方向上有750个发光点,每个发光点可以作为一个像素。垂直上有1334个发光点(小方块)
- 设备物理像素是固定的,只有这么多像素。
设备独立像素(在pc上又称逻辑像素)-dp
- 指为了保证无论手机物理分辨率有多大,为了保证页面的效果得到统一展示,那么每个手机都有自己的设备独立像素。无论哪个手机每一个独立像素可以认为是一个css像素
- 每个手机的设备独立像素多少是不一样的。比如iphone6、7、8独立像素都是375_ 667 ,像iPhone 12 pro 就是390_844
- 绝大多数手机的独立宽度为:360 375 390 411 414
- 设备独立像素就是移动端页面所参考的100%宽度
dpi
- 设备独立像素比:指手机的独立像素和物理分辨率的比值。每个手机的dpi是固定的。比如iPhone 12 Pro Max的独立像素是428*926,手机物理分辨率是 1284 x 2778,dpi就是3.0.
视口(viewport)
布局视口
- 因为手机一般的屏幕较小,分辨率不同。为了正常显示所有的页面,包括pc端,所以移动端针对浏览器页面有个默认的页面宽度。大多数的手机浏览器页面默认宽度为980px,有的是1024px。我们称默认的移动端浏览器页面展示模式为布局视口(layout viewport)
视觉视口(visual viewport)
- 布局视口是为了正常显示pc端页面而做 的调整,但对于屏幕本身是无法以屏幕本身宽度来作为页面布局。而视觉视口是指以当前屏幕的宽度作为页面的布局方式。
- 不同的dpi会导致相同px的页面在不同的手机下会有空隙或者滚动条等。
理想视口(ideal viewport)
- 无论是什么品牌手机,或哪种分辨率,应当同样宽度的页面在不同的手机上都会呈现一样的效果。我们成为理想视口
- 每个手机的理想视口是以自己的设备独立像素作为自己页面的100%宽度。1csspx 在每个手机上的效果是一样的。
- 开启理想视口模式
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no"/>
处于理想视口模式下。同样的页面内容,在不同的手机上效果是一致的,唯一需要兼容处理的就是每个手机的设备独立像素不一样。
- 绝大多数手机的设备独立像素为:360 375 390 411 414 768 1024
<meta>
是在<head>
中用于完成页面配置的标签。可以配置不同的设置,比如字符编码,设置移动端视口模式等。name
:表示要设置的配置项名称。比如name=viewprot
表示设置移动端视口模式,name=keywords
表示设置页面关键字content
:设置项的具体配置信息
width=device-width
:即页面宽度采取设备的独立像素,即width:100%== 设备的独立像素initial-scale=1.0
:缩放比例为1.0,缩放比例也是参考了设备独立像素user-scalable
:是否允许用户缩放页面,取值为yes或no
移动端使用的像素单位
em rem
em:1em相当于父标签的font-size大小。比如父标签的font-size为14px,那么1em等于14px,2em=28px
- 父标签没有font-size,继续往上找font-size。如果祖先标签都没有设置font-size,会参考浏览器的font-size,大多数默认16px
- rem: rem是只想对于
<html>
标签的font-size, 不会被父标签的font-size所影响。即如果<html>
的font-size为30px,那么页面上的所有后代标签设置1rem==30px.
vw、vh(viewport-width \height)
- vw:css3提供的单位,1vw即视口宽度的1%。100vw即100%视口宽度。
- vh:css3提供的单位,1vh即视口高度的1%。100vh即100%视口高度。
- 在理想视口下,视口宽度或高度就是浏览器的宽度以及可视区域的高度
px:绝对单位
- 为了保证页面的效果在不同手机下效果是一样的话,需要使用理想视口
移动端布局技巧
页面布局(针对移动端)
- 必须采用理想视口
- 建议页面整体尺寸采取
rem
- 对于列表之类可以使用弹性布局(推荐)
- 文字也是用
rem
来设置
屏幕适配
主要适配以下的设备独立性像素(理想的视口宽度)
- 360 375 390 411 414 768 1024
适配方案:根据不同屏幕宽度来设置
<html>
不同的font-size
- 使用媒体查询
- 利用js来动态监测屏幕宽度,来计算得到合适的
font-size
关于图像
- 小图标尽量用字体图标
- 背景图片可以
background-size
用rem - 一般
img
标签是设置100%,父标签来控制宽度