当按下文本框后出现ios 7虚拟键盘时,我的web应用程序底部的div元素出现问题.

我有这个div元素:

....
        <div id="footer" style="text-align:center">
            <div id="idName"><img alt="SomeName" src="images/logo.png" /></div>
        </div>

    </form>
</body>

它使用这种风格

#footer{
color:#CCC;
height: 48px;

position:fixed;
z-index:5;
bottom:0px;
width:100%;
padding-left:2px;
padding-right:2px;
padding:0;

border-top:1px solid #444;

background:#222; /* Old browsers */
background:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));  
background:    -moz-linear-gradient(top, #999, #666 2%, #222); /* FF3.6+ */    
background: -webkit-linear-gradient(top, #999, #666 2%, #222); /* Chrome10+,Safari5.1+ */
background:      -o-linear-gradient(top, #999, #666 2%, #222); /* Opera 11.10+ */
background:     -ms-linear-gradient(top, #999, #666 2%, #222); /* IE10+ */
background:         linear-gradient(top, #999, #666 2%, #222); /* W3C */
}

当我按下文本框时,footer元素会跳到虚拟键盘上方.

左侧是在按文本框之前,右侧是在按文本框之后.

左侧:之前.右侧:在

页脚跳到虚拟键盘上方.

UPDATE:

我已经更改了负鼠提供的meta标记,现在页脚仍位于底部:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--<meta name="viewport" content="initial-scale=1.0, user-scalable=0">-->
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />

Extension

这不是问题的一部分,但是当在Android上运行时,修复会把事情搞砸:) 有什么解决方案吗?

解决方案:go 掉了最大规模和目标密度Dpi,现在iOS和Android都可以使用.元标记现在看起来如下所示:

<meta name="viewport" content="initial-scale=1.0, user-scalable=0, width=device-width, height=device-height"/>

推荐答案

EDIT:好吧,我找到了另一个可能的解决方案.判断您的html元标记是否有以下内容:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">

将其替换为以下内容:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />

这为我解决了问题.但我应该注意,我的应用程序使用的是Cordova.

Another possible solution:

如果你查看配置.xml(可能在参考资料目录下,您应该看到一行内容:

<preference name="KeyboardShrinksView" value="false" />

如果将其设置为true,则可以防止页脚在软键盘上方移动.然而,这也会导致键盘有时会掩盖用户正在键入的文本字段.

Asp.net相关问答推荐

如何使用 executeReader() 方法仅检索一个单元格的值

IIS 中的嵌套 ASP.NET应用程序继承父配置值?

在 aspx 页面中使用 if else 和 eval

在每页级别增加 ASP.Net 超时

Azure Service Fabric 是否与 Docker 做同样的事情?

Web api 不支持 POST 方法

将 null 转换为字符串的函数

如何在 Kendo UI 中获取下拉列表中选定项目的文本?

不支持关键字:服务器

如何使用三个按钮是否和取消显示确认alert ,如 MS Word 中所示

.NET 核心 IdentityUser 模型中规范化邮箱和用户名的用途是什么?

免费的 ASP.Net 和/或 CSS 主题

从后面的 asp.net 代码中读取表单身份验证 cookie

如何找出我的 Windows 域上托管 LDAP 的服务器?

在 ASP.NET 中使用 Messenger Connect 客户端库时出现 Javascript 错误

DBContext.Entry 有什么作用?

存在 ios 7 虚拟键盘时,div 元素不会停留在底部

c# list 如何在两个值之间插入一个新值

ASP.NET MVC 5 Web.config:FormsAuthenticationModule或FormsAuthentication

Page.IsPostBack 和 Page.IsCallBack 有什么区别?