最近用 uniapp(一种第三方 app 开发框架) 开发 app,其中一个页面有十几个 input 输入框,在点击 input 输入时,软键盘弹起,致使页面往上顶,底部的按钮也所有弹到页面上面去了,布局全被打乱。css
原来的样子: app
一种可行的解决方案:给页面设置一个最小高度,即一个能让全部元素按原来布局排列的高度。框架
举例:iphone
我开发的 APP 运行在 ipad上,横屏显示时,高度为 768px ,我能够把 768px 当作页面的最小高度。布局
.app {
min-height: 768px;
/* 原来定义的高度 100% */
height: 100vh;
}
复制代码
ipad 的问题解决了,要是 APP 运行在其余手机端上呢?此时,CSS3 @media
属性就排上用场了。 假设要适配 iphone5 和 iphone6spa
/* iphone5 width:320; height:568*/
@media (min-width: 320px) {
.app {
min-height: 568px;
height: 100vh;
}
}
/* iphone6 width:375; height:667*/
@media (min-width: 375px) {
.app {
min-height: 667px;
height: 100vh;
}
}
复制代码
这样设置便可适配 iphone5 和 iphone6code