在已了解flexible的基础上,来研究另一种适配方法:rem + vw
在做移动端的时候,用的比较多的就是 flexible 来动态修改根字体大小,使用 rem 单位来适配的,这样做始终有一些不好的地方,因为必须通过js来改变,且该方法逐渐被废弃使用了;
在项目中可能会遇到过加载页面、或者刷新页面的时候,有那么一瞬间整个页面是缩小不规则状态,因为这时 flexible.js 还没加载完成,加载完成后整个页面才是正常的样式
而 vw 也是通过浏览器窗口宽度来计算的(当有竖向滚动条时,100vw ≠ width:100%),
vw、rem 计算方法:
例:设计稿为 750px,则
∵ 750px = 100vw
∴ 1px = 100/750 = 0.133333vw
∴ 100px = 13.3333vw
这时根字体设置为 html{font-size:13.3333vw}
∵ 1rem = 根大小 = 13.333vw = 100px
∴ 1rem = 100px
例:设计稿字体大小为 24px,就可以写成 .24rem 了,在375屏下审查的时候会发现已经自动变为 12px 了
所以,这里就可以直接根据设计稿来写rem了,
但是有个问题,vw 是根据浏览器窗口来改变的,当窗口宽度达到一定值的时候,我想把内容区域固定最大宽度居中显示,那么这里就有问题了
可以这样解决,通过媒体查询,设置一个临界值,比如:
@media screen and (min-width:769px){
html{font-size:102px}
}
这里的值可以根据情况来写,这样不管窗口有多宽,样式都不会放大了