设计稿640px取一个100px的font-size为参照 那么body元素的宽度就可以设置为width: 6.4rem,所以html的font-size=deviceWidth/6.4 这个deviceWidth就是viewport设置中的那个deviceWidth,根据这个计算规则,可得出适配方案
deviceWidth = 320,font-size = 320 / 6.4 = 50px
deviceWidth = 375,font-size = 375 / 6.4 = 58.59375px
deviceWidth = 414,font-size = 414 / 6.4 = 64.6875px
deviceWidth = 500,font-size = 500 / 6.4 = 78.125px
宽高字体都用rem单位
这个deviceWidth通过document.dovumentElement.clientWidth就能取到了,所以当页面的DOM准备好后,做的第一件事情就是
document.documentElement.style.fontSize = document.documentElement.clientWidth / 6.4 + 'px'
这个6.4是根据设计稿的横向分辨率/100得来的。
总结
- 先拿设计稿竖着的横向分辨率除以100得到body元素的宽度:
如果设计稿基于iphone6,横向分辨率为750,body的width为750 / 100 = 7.5rem
如果设计稿基于iphone4/5,横向分辨率为640,body的width为640 / 100 = 6.4rem
布局时,设计图标注的尺寸除以100得到rem尺寸,
视口要如下设置:
<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">