css 搞定input框使用fixed下输入的问题

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

源码地址

在这里插入图片描述
大概布局就是上面是列表 底部是input并基于浏览器定位放置于最底部

当点击输入框的时候会出现input位置错乱的情况

在这里插入图片描述
这里出现了上移的情况

在这里插入图片描述
这里出现了消失的情况,得滑动到最底下才会出现

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

首先把页面分割成两个块组成列表滚动区和输入区

在这里插入图片描述
首先把最外部的盒子设为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,小伙伴可以自行体验下

点击体验

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值