为了账号安全,请及时绑定邮箱和手机立即绑定

利用flex解决input定位的问题

标签:
Html5 CSS3 Vue.js

用简单的布局搞定input框使用fixed下输入的问题

最近在做移动端H5聊天应用发现,当input框在最底部并且使用position:fixed 属性的时候在苹果手机中会出现不兼容的情况

微信截图_20210312214022.png

大概布局就是上面是列表 底部是input并基于浏览器定位放置于最底部
当点击输入框的时候会出现input位置错乱的情况

11.png

这里出现了上移的情况

22.png

这里出现了消失的情况,得滑动到最底下才会出现

在经过一系列的面向百度编程后,各种监听input是否聚焦在写相应的事件再去对input做一些位置上的定义,我感觉好麻烦,也非常繁琐,最后我实践出一个相对比较完美的方案并且只用flex布局就可以轻松的实现
首先把页面分割成两个块组成列表滚动区和输入区

微信截图_20210312220330.png

首先把最外部的盒子设为flex 盒子并且纵向排列,高度设为100%,就是和窗口一样大小,高度获取可以利用绝对定位或者给body设置100%高度继承下来等等方法

.box{
    display:flex;
    flex-direction: column;
    height:100%
}

这样就纵向排列了,把滚动区的盒子自动撑开就行了

.list{
    flex: 1;
    width: 100%;
    overflow-y: scroll;
    -webkit-overflow-scrolling:touch;
}

底部设置高度

.foot{
    width: 100%;
    height: 100rpx;
    background: #fff;
}

这样就大功告成了目前项目运行中,暂未发现bug,小伙伴可以自行体验下

地址:github.crmeb.net/u/qiang

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
0
获赞与收藏
2

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消