按下文本框后出现ios 7虚拟键盘时,div元素粘在我的Web应用程序底部时出现问题。
我有这个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 */ }
当我按下文本框时,页脚元素会跳到虚拟键盘上方。当我的iDevices在ios 7之前的版本上运行时,它可以正常工作。
左侧是按下文本框之前,右侧是按下文本框之后。
页脚跳到虚拟键盘上方。
更新:
我更改了Opossum提供的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" />
延期
这不是问题的一部分,但是当在Android上运行时,此修复程序将问题搞砸了:)有什么解决方案吗?
解决方案:删除了maximum-scale和target-densityDpi,现在它适用于IOS和Android。现在,meta标签如下所示:
<meta name="viewport" content="initial-scale=1.0, user-scalable=0, width=device-width, height=device-height"/>
编辑:好的,我找到了另一个可能的解决方案。检查您的html meta标记 是否类似以下内容:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
Replace it with this:
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" />
这为我解决了问题。我应该注意,虽然我的应用程序正在使用Cordova 。
另一种可能的解决方案:
如果您查看config.xml(可能在resources目录下,则应显示以下行:
<preference name="KeyboardShrinksView" value="false" />
如果将其设置为true,则可防止页脚在软键盘上方移动。但是,这也会导致键盘有时掩盖用户键入的文本字段。