移动端适配

22 篇文章 1 订阅
4 篇文章 0 订阅

一、为什么要做移动端适配

一般,前端拿到的设计图,都是375,或者是750,但是面对百花齐放的移动端屏幕,似乎这2个尺寸的图,无法满足所有的屏幕,让设计们针对每一个屏幕都做一份图出来,也是不现实的事,于是,便有了前端的移动端适配。

请看下表:

手机分辨率 (pt)分辨率(px)像素比
iPhone 12390x8441170x25323
iPhone 11414x896828x17922
iPhone x375x8121125x2433
iPhone 8375x667750x13342

不同手机屏幕,一个pt代表的px是不同的,当我们写css,1px的时候,渲染到屏幕上,可能是2px,可能是3px,并且不同的浏览器厂商,对小数的px,渲染结果也是不一样,这就导致了经典的移动端1px问题。

二、如何解决

  • 在web中,浏览器为我们提供了window.devicePixelRatio来帮助我们获取dpr
  • 在css中,可以使用媒体查询min-device-pixel-ratio,区分dpr
  • rem是CSS3新增的一个相对单位。使用rem为元素设定字体大小时,是相对的只是HTML根元素的fontsize大小。

基于上述3个api,开发者可以根据不同设备,设置不同的html fontsize。

假如设计图是750px,那么我们通常利用如下公式,来设置html元素的fontsize属性

1rem=htmlFontSize=设备宽度÷设计稿定义的是几rem

还有另一种解决方案

使用vw、vh

vh、vw方案即将视觉视口宽度 window.innerWidth和视觉视口高度 window.innerHeight 等分为 100 份。

假如设计稿是750,页面有一个宽度100的元素,那么宽度应该设置为100/750vw

三、最后

随着webpack的不断发展,现在已经不需要我们手动来去计算到底是多少rem来,可以配置postcss-pxtorem插件,轻松实现转换,编码的时候只需要编写设计图是多大px,就写多大px即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值