移动端适配方案

9 篇文章 0 订阅
2 篇文章 0 订阅

flex + rem 单位 用来做适配效果  (比如淘宝和小米移动端) 当前市场最多

flex +viewport width / vh 单位 做适配效果 (比如B站的移动端)一个新的趋势

flex做布局(盒子摆放),让rem或者vw/vh 实现网页元素的尺寸(宽度和高度)适配屏幕

 静态布局:在meat标签中的viewport标签中设置width,通过js动态修改标签的initial-scale使得页面等比缩放,采用px为单位,不存在兼容问题,用户体验极差

流式布局:使用%定义宽度,高度使用px固定,通常使用max-width,min-width来控制页面的最大宽度和最小宽度,实现很简单,但是在大屏幕手机或者切换横竖屏的模式下可能会造成元素拉伸变形字体大小无法根据屏幕大小发生变化

rem布局:将屏幕分成100等份,让元素随着屏幕的变化而等比缩放。以某个设备为标准,计算元素占据屏幕百分之几。

根据上面可以得出公式:

相对于屏幕的1%

 document.documentElement.fontSize = "width / 100";

计算元素占用屏幕的百分之几

元素rem = 元素的宽度 / ui图宽度 * 100

Vm/vh:

css3中引入了一个新的单位vw/vh,与视图窗口有关,vw表示相对于视图窗口的宽度,vh表示相对于视图窗口高度,除了vwvh外,还有vminvmax两个相关的单位。

vw — 视口宽度的 1/100vh — 视口高度的 1/100;

vw的缺点:
 ios和安卓上存在兼容性问题,只适用高版本;

另外,在使用弹性布局时,一般会限制最大宽度,比如在pc端查看我们的页面,此时vw就无法力不从心了,因为除了widthmax-width,其他单位都没有,而rem可以通过控制html根元素的font-size最大值,而轻松解决这个问题

  1. rem适配【视觉窗口+动态配置rem】
            1.视觉窗口

 

 

          2.动态配置rem

 

通过js获取设备宽度来动态设置font-size随着视口大小的改变而改变,流程如下:

  1. 获得设计稿尺寸,如750px
  2. 对设计稿标注进行转换
  3. 需要等比缩放的使用rem,不需要缩放的,例如border阴影,则使用px

缺点

css与js代码具有一定的耦合性

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值