H5+CSS3移动端适配技术
2020-01-13 本文已影响0人
7b7d23d16ab5
前言
近期因工作需求,做了一个Vue APP,过程中遇到了曾今经常听说,但从未真正接触过的移动端适配问题,中间遇到了很多挫折,经过了5天吧,这个小app经过来回重写样式好几遍,终于找到了门道,应该算是正路吧,我身边也没有真正做h5 app的伙伴,靠着自己百度、揣摩,外加朋友的帮助,学会了适配的方案。
适配方案
- 1、需要使用的单位(最好不要用别的单位,不然会遇到麻烦):
[1] css3 单位
vw、vh、vmin、vmax
[2] 百分比单位
%
解释
vw:屏幕可视宽度百分比
vh:屏幕可视高度百分比
vmin:屏幕可视宽度和高度中较小的那个,用这个单位,可以让字体在移动设备无论横屏还是竖屏都保持大小不变
vmax:屏幕可视宽度和高度中较大的那个,用处同上vmin
%:相对于父级元素的百分比尺寸
- 2、移动设备可视宽高的理解
上面的尺寸一定要自己考虑好当前元素所处环境后,再精心挑选,否则会发生适配效果不佳的问题;
要想通过H5+CSS3完美适配很多机型,最重要的就是理解可视宽高
如果打包成全屏应用,如apk全屏效果,那么可视高度vh就是整个设备的屏幕高度
如果直接在微信内嵌浏览器中浏览,那么可视高度会被浏览器的顶部栏位占用一部分,那可视高度就是下方剩余的高度
如果实在浏览器app中浏览,那么顶部栏位挡掉一部分后,也是下方剩余的部分为可视高度,不用去理会浏览器下方的tab工具栏,因为浏览器似乎是忽略了底部的工具栏,画面提供滚动,可以发现能够手指下滑继续滚动到下方,而在开发时,几乎是忽略这种用浏览器访问的方式的,不必在意这个滚动才能看到下方遮挡的部分的问题,我们只需要考虑全屏和微信浏览器的效果即可
由于设备的高度会在不同的情况下受到影响,所以我们主要使用vw去控制各个元素的尺寸,因为设备的可视宽度正常情况下是不会有什么东东占用的,我没遇到过,所以设备的宽度就是可视宽度,那么宽度不变,我们使用vw去控制元素尺寸的时候,也就不会受到任何影响了,无论在什么情况下,都能保证元素的位置和尺寸不变了
而我们在适当的情况下需要使用%,因为vw、vh等都是设备的整个屏幕的可视宽高百分比,而有时候我们要的百分比是相对父级元素的,所以不要随便乱用,要想好再用
下面展示下把web app打包成apk全屏应用和在浏览器中浏览的效果
全屏效果
微信图片_20200113184929.jpg微信浏览器中的效果
微信图片_20200113184937.jpg最后说明
px 转 rem,还有写各种屏幕的不同样式的方案是过去的方案,当前主流使用CSS3的新特性单位,才最佳