前言
移动端用fixed布局非常爽,但是兼容问题也是一堆,尤其是用固定在底部的输入框,在输入法键盘出来之后,输入法控件的位置直接错位;还有的设备直接不支持fixed。
如何检测是否支持fixed样式
var div = document.createElement('div');
div.style.cssText = 'display:none;position:fixed;z-index:100;';
body.appendChild(div);
console.log(window.getComputedStyle(div).position != 'fixed');
不支持时如何做方案
absolute
当然是:absolute了,写最小高度,绝对定位在页面底部即可。
tip:为了不影响页面的正常内容,记得给主题内容增加padding-bottom为底部元素的大小。
flex
flex:1 弹性盒布局能满足站用剩下的全部空间。
底部输入框的交互方案如何做?
底部的输入框是假的,只作为一个点击控件,当输入法键盘出现之后,再展示另外的输入控件,显示输入文本。
小结
能不用就不用fixed布局。