写在前面:以前的自己,可以专心致志的做事情,现在的自己,每次投入学习就像热锅上的蚂蚁,沸腾着。改变状态,从一个小博客开始。
前面一节讲了ios遇到的坑,本周自己又一次遇到了安卓的坑
原生和vue上的解决方式
1.安卓坑之软键盘弹起来 就不是你的背景图了哦~
实现的功能为一个表单,如下图所示 ,
表单的白色框是填充整个的内部的,就是手机屏幕不管多大,白色的框都必须给我撑开//父盒子
.bank-list-form{min-height:100%;height:100%;width:background:url("xxx.png");background-size://子盒子.bank-wrapper {
width:min-height:100%;//和父盒子高度保持一致 且撑满整个屏幕
}
}
坑点1: 整个页面的背景是一个图片,当软键盘弹起来时,背景图会被压缩变形,效果图就不展示了,更改以此方式,设置背景图的一个背景高度
温馨提示1:对于这种大图片作为背景,一定要no-repeat 不然 会有大屏的手机下面的部分显示白边
background-size: [email protected] cover;
cover 覆盖整个页面高度 而设置宽度只要是为了防止页面高度变化时,向两个拉开
坑点2:页面按钮绝对定位到底部时,软键盘弹起来导致按钮跟着上来
正常的写法:
.bank-wrapper {
width: [email protected];
min-height: 100%;
position: relative;
.bottom-fixed{
position: absolute;
bottom: [email protected];
width: [email protected];
}
}
父元素相对定位,自元素绝对定位就可以了,但是在安卓中,会发现,软键盘弹起来,按钮就会上去,导致页面的样式错乱,在小屏幕的浏览器中也会出现这种情况,
产生的原因分析:由于页面内部的白色输入框部分的高度是依赖于整体的高度,而整体的高度为100%,导致内部的高度也为100%,高度不够用,底部相对定位的按钮自然就会定位到一个和输入框表单重叠的位置。
先解决重叠的问题:按钮始终在输入框表单的下部分,设置白色表单框的下部分padding-bottom>按钮的高度,这样高度是自然够了,在小屏幕的手机中,立即申请按钮也不会覆盖表单框了。
继续相连问题,按钮不会重叠了,但是软键盘弹起来,整个页面的height就会变小,而会导致页面变形,
var windheight = $(window).height(); //获取页面变形前高度
$(window).resize(function(){
var docheight = $(window).height();
if(docheight < windheight){
$("body").css("height",windheight); //当软键盘弹起来的时候自动设置页面的高度为原高度,这样就好了
}else{
$("body").css("height","100%"); //软键盘落下去回到原来的高度
}
});
在整个问题解决中,注意点有两个:定位在底部的按钮和背景的图片。
2.vue中如何解决
.commpn-apply{background:url("xxx") no-repeat;background-size:100% 482px;padding-left:30px;padding-right:30px;height:100vh; box-sizing:border-box;display:flex;flex-direction:column;
.son{
height:100%
}
}
解决方式: 媒体查询方法,页面变化时,给盒子高度
@media (min-width: 320px) {
.commpn-apply {
min-height: 568px;
height: 100vh;
}
}
@media (min-width: 375px) {
.commpn-apply {
min-height: 667px;
height: 100vh;
}
}
原文:https://www.cnblogs.com/mfyngu/p/11708307.html