我是如何实现移动端布局的

布局其实是一个很玄学的东西,你说会,但是布局出来总感觉缺点什么,要么层级嵌套太复杂,要么class名太多,都想不出来名字。我的布局其实也一般,但是通过最近几个项目的锻炼,我自己总结了一套的移动布局的实现的方法。核心是百分比+rem

准备工作,初始化css

html{
    font-size:26.67vw;
}
html,body,#app{
    width:100%;
    height:100%;
}
复制代码

这里最关键的一句话就是那个font-size,26.67是如何算出来的呢。首先,我们拿到设计稿,例如设计稿宽度是375px。我们知道屏幕的宽度是100vw,所以1vw=3.75px,那么1px约等于0.2667vw,我们再假设1rem=100px,因此就可以得出html的根字体大小,26.67vw.

p{
/* 字体大小约等于16像素*/
    font-size:.16rem;
}
复制代码

当然,这个方法也不是万能的,实践中,会有1-2px的误差,我觉得还是可以接受的。 我这个方法还有个好处,就是可以实现pc和移动端同时兼容。我们可以通过媒体查询,重设根字体大小来实现兼容pc端,当然不是那么好看。建议出图的时候就出2套,通过nginx去判断,跳转,可以参见我之前的博文通过userAgent切换访问地址的3种方法

@media screen and (min-width:768px) {
    html {
        font-size: 100px;
    }
}
复制代码

弹性盒

在我的实践中,弹性盒现在已经兼容的很好了,尤其是移动端上的IE---UC。 这样的写法在某些版本UC种,文字会偏下,建议直接使用弹性盒解决

/*某些UC中不兼容*/
p{
    height:.2rem;
    line-height:.2rem;
}
/*兼容性较好*/
p{
   display:flex;
   justify-content:center;
   align-items:center;
}
复制代码

常用的圣杯布局,需要注意:从html开始检查,元素需要有宽高。上部和底部需要设定固定高,中间flex:1;

.wrap{
    width:100%;
    height:100%;
    display:flex;
    flex-direction: column;
   justify-content: space-between
   
}
.top,.bottom{
    height:1rem;
}
.middle{
    flex:1;
}
复制代码

转载于:https://juejin.im/post/5cef85595188256bf8464cf3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值