H5页面 绝对定位元素被 软键盘弹出时顶起

在h5页面开发的过程中,我们可能会遇到下面这个问题,当页面中有输入框的时候,系统自带的软盘会把按钮挤出原来的位置。那么我们该怎么解决呢?下面列出一下的方法:

一:设置html和body高度,之后将按钮相对于body定位 (这里的body需要设置高度为100%):

html,body{
position:relative;
height:100%;
min-height:100%;
}
button{
position:absolute;
bottom:0;
}

二:利用 css sticky footer 进行页面的排版

css sticky footer功能介绍:如果页面内容不够长的时候,页脚块粘贴在视窗底部;如果内容足够长时,页脚块会被内容向下推送。(具体介绍请点击传送门

flex布局:传送门

核心样式代码:

整个页面的大容器(如body):

body{
  display:flex;
flex-direction:column;
  min-height:100vh;
}

  

需要固定的元素,比如视窗底部,如果内容足够长时,页脚块会被内容向下推送。

.footer{
height: 100px;
}

内容的容器:

.content{
flex: 1;
}

我们利用核心代码写一个小例子看看效果:

html:

<div class="header">
header
</div>
<div class="content">
content
</div>
<div class="footer">
footer
</div>

css:

body{
  display:flex;
flex-direction:column;
  min-height:100vh;
}
.header,.footer{
width: 100%;
height: 100px;
background-color: #ddd;
color: #fff;
}
.content{
width: 100%;
flex: 1;
background-color: #000;
color: #fff;
}

  

效果图:

如果我们王content中添加内容,直到溢出:

html:

<div class="content">
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
<h1>内容超出容器高度</h1>
</div>

效果为:

    

这个时候我们需要的效果就实现了。

三:利用~同辈选择器进行页面的排版(适用于输入框和按钮是同辈元素)

#contents:focus ~ button { display: none }

H5页面 绝对定位元素被 软键盘弹出时顶起的更多相关文章

  1. H5 App页面 绝对定位 软键盘弹出时顶起底部按钮

    做H5 App页面时,有时候,按钮可能会放到页面的最底下,这个时候可能会用到绝对定位(position: absolute),但是,当input 输入框被点击时,弹出的软键盘会顶起底部的按钮,就像这样 ...

  2. Android软键盘弹出时布局问题

    最近项目需要做一个类似聊天室的模块,基于Socket实现的,这部分稍后一段时间再做总结,功能上的相关点都实现了小例子也做出来了,最后发现一个比较腻歪的问题就是软键盘弹出时总是会把标题“挤出”屏幕,(无 ...

  3. Android中软键盘弹出时关于布局的问题

     当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncre ...

  4. Android 软键盘弹出时把原来布局顶上去的解决方法

    键盘弹出时,会将布局底部的导航条顶上去. 解决办法: 在mainfest.xml中,在和导航栏相关的activity中加: <activity            android:name=& ...

  5. Android软键盘弹出时把布局顶上去的解决方法

    原文: 解决Andriod软键盘出现把原来的布局给顶上去的方法(转) 链接:http://blog.sina.com.cn/s/blog_9564cb6e0101g2eb.html 决方法,在main ...

  6. Android中软键盘弹出时底部菜单上移问题

    当在Android的layout设计里面如果输入框过多,则在输入弹出软键盘的时候,下面的输入框会有一部分被软件盘挡住,从而不能获取焦点输入. 解决办法: 方法一:在你的activity中的oncrea ...

  7. Android 软键盘弹出时把布局顶上去,控件乱套解决方法

    解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.Layo ...

  8. 小米note3,华为手机,软键盘弹出之后,页面上定位的元素布局会乱掉

    原因:可能是因为,软键盘弹出时,改变了height,使height:100%,不能达到原来的高度. 解决办法: $(document).ready(function () { $('body').he ...

  9. 小程序中点击input控件键盘弹出时placeholder文字上移

    最近做的一个小程序项目中,出现了点击input控件键盘弹出时placeholder文字上移,刚开始以为是软键盘弹出布局上移问题是传说中典型的fixed 软键盘顶起问题,因此采纳了网上搜到的" ...

随机推荐

  1. 『ACM C++』HDU杭电OJ | 1418 - 抱歉 (拓扑学:多面体欧拉定理引申)

    呕,大一下学期的第一周结束啦,一周过的挺快也挺多出乎意料的事情的~ 随之而来各种各样的任务也来了,嘛毕竟是大学嘛,有点上进心的人多多少少都会接到不少任务的,忙也正常啦~端正心态 开心面对就好啦~ 今天 ...

  2. bootstrap-01-学习记录

    1.bootstrap所有插件依赖JQ,必须在JQ之后引入. 2.bootstrap分预编译版(css,js,fonts)和源码版(less,js,fonts,dist->预编译版内容,docs ...

  3. 纯js轮播图练习-1

    偶尔练习,看视频自己学着做个简单的纯JS轮播. 简单的纯js轮播图练习-1. 样子就是上面图片那样,先不管好不好看,主要是学会运用和理解轮播的原理 掌握核心的理论知识和技术的操作,其他的都可以在这个基 ...

  4. 【Storm一】Storm安装部署

    storm安装部署 解压storm安装包 $ tar -zxvf apache-storm-1.1.0.tar.gz -C /usr/local/src 修改解压后的apache-storm-1.1. ...

  5. Java核心技术36讲----------Exception和Error有什么区别

    1.异常知识点学习实例 代码如下: package fromnet; /** * 参考链接:https://blog.csdn.net/qq_18505715/article/details/7319 ...

  6. Python 爬虫 (五)

    # 头条街拍图片爬取 1 import re import requests from urllib import request import json import os i = 0 header ...

  7. Python之函数装饰器

    在实际中,我们可能需要在不改变函数源代码和调用方式的情况下,为函数添加一些新的附加功能,能够实现这种功能的函数我们将其称之为装饰器.装饰器本质上其实还是是一个函数,用来装饰其它函数,为函数添加一些附加 ...

  8. UART学习之路(二)基本时序介绍

    这次我们来介绍一下UART的基本时序,了解一下底层信号怎么传送的.方便以后使用Verilog HDL实现收发逻辑. 9600bit/s 的意思是每秒发送9600bit,因此可以理解为将1s分解为960 ...

  9. Nodejs实战 —— 测试 Node 程序

    读 <node.js实战2.0>,进行学习记录总结. 当当网购买链接 豆瓣网1.0链接 测试 Node 程序 本章内容 用 Node 的 assert 模块测试 使用其他断言库 使用 No ...

  10. 日期插件Mobiscroll

    http://mobiscroll.com/ http://www.cnblogs.com/hxling/archive/2012/12/12/2814207.html http://www.wglo ...