前言
最近,在实现移动端 css 布局的时候,遇到一个坑,即在position:fixed布局下,输入框在弹出时,会出现错位的情况。

解决思路
个人猜测应该是当页面是滚动时,弹起键盘输入时,页面上的 fixed 属性会变成 absolute。
解决思路:让页面不滚动,所以这里就需要有个容器包裹滚动的内容,使得浏览器不会出现滚动条。代码如下:
1 | <body> |
1 | body { |
我们可以看到有一个属性设置-webkit-overflow-scrolling: touch;, 这个属性很重要,如果不加这个属性的话,滚动起来会感觉不够流畅。这是-webkit-专有的特性,用来快速滚动和回弹效果。
[本文谢绝转载,谢谢]