当前位置: 首页 > 面试题库 >

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

安星汉
2023-03-14
问题内容

按下文本框后出现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,则可防止页脚在软键盘上方移动。但是,这也会导致键盘有时掩盖用户键入的文本字段。



 类似资料:
  • http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/embedd.htm 有没有人在javafx应用程序中有过虚拟键盘的经验?我需要能够显示正常的键盘或数字键盘时,文本字段是聚焦的。

  • Javascript VirtualKeyboard 是一个 JavaScript 的虚拟键盘,特别适合在浏览器中的可视化编辑器中使用。支持多种语言。

  • 问题内容: 这是一个聊天应用示例-> 这里的想法是尽可能多地占用屏幕。在中,保存消息列表,如果还有更多消息,则滚动屏幕尺寸。 现在,考虑这种情况: 用户滚动到对话的底部 的,动态地变大 现在,文本输入增加了,而不再是用户滚动到对话的底部,而是不再看到底部。 解决该问题的一种方法,如果我们使用react,请计算文本输入的高度,如果有任何变化,请让.messages-container知道 但是,这会

  • 我有多个div和其中大多数是浮在左边。如果我在页面上放置一个绝对和底部0px的位置,页脚将跳到页面的一半,并坐在内容的顶部。以下是我的HTML: 下面是我的CSS: