为什么要移动端适配
屏幕尺寸
屏幕尺寸是以屏幕对角线的长度来计量,计量单位为英寸。
像素
组成图像的最小单位就是像素, 每个像素的大小是不固定的, 她是根据设备的分辨率决定的
分辨率
屏幕分辨率是指纵横向上的像素点数, 单位是px, 屏幕分辨率确定计算机屏幕上显示多少信息的设置, 以水平和垂直像素来衡量. 当相同大小的屏幕时, 分辨率高的, 屏幕上显示的像素多, 单个像素尺寸比较小. 分辨率低的, 屏幕上显示的像素少, 单个像素尺寸比较大.
设备像素比
设备像素比device pixel ratio简称dpr,即物理像素和设备独立像素的比值。
如何解决
在web中,浏览器为我们提供了window.devicePixelRatio来帮助我们获取dpr。在css中,可以使用媒体查询min-device-pixel-ratio,区分dpr:
div {
height: 1 px;
background: #000;
-webkit-transform: scaleY(0.5);
-webkit-transform-origin:0 0;
overflow: hidden;
}css根据设备像素比媒体查询后的解决方案
如何适配
viewport
视口(viewport)代表当前可见的计算机图形区域.
理想视口:一般来讲,这个视口其实不是真是存在的,它对设备来说是一个最理想布局视口尺寸,在用户不进行手动缩放的情况下,可以将页面理想地展示。那么所谓的理想宽度就是浏览器(屏幕)的宽度了。
解决适配方法
rem 适配
这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。 这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
flexiable
vw,vh 布局
vh、vw方案即将视觉视口宽度 window.innerWidth和视觉视口高度 window.innerHeight 等分为 100 份。
我们可以采用 webpack 插件
移动端适配流程
在head 设置width=device-width的viewport‘
在css中使用px
在适当的场景使用flex布局,或者配合vw进行自适应
在跨设备类型的时候(pc <-> 手机 <-> 平板)使用媒体查询
在跨设备类型如果交互差异太大的情况,考虑分开项目开发
最后更新于
这有帮助吗?