当 iOS 键盘处于活动状态时,CSS 方向会自动切换到横向

Posted

技术标签:

【中文标题】当 iOS 键盘处于活动状态时,CSS 方向会自动切换到横向【英文标题】:CSS orientation automatically switches to landscape when iOS keyboard is active 【发布时间】:2014-06-12 14:28:06 【问题描述】:

我正在使用 cordova(phonegap) 和 angularJS 框架在 Xcode 中制作一个非原生 ios 应用程序

我通过以下方式区分不同方向的 css 属性:

@media all and (orientation:portrait)   

@media all and (orientation:landscape)  

在竖屏模式下的 Xcode 模拟器中,当单击文本字段时,会弹出屏幕键盘。发生这种情况时,它会切换到横向模式的 CSS,同时仍保持纵向。这显然会打乱所有格式。

对于为什么会发生这种情况的任何建议,我们将不胜感激。 提前致谢。

【问题讨论】:

【参考方案1】:

要解决此问题,请尝试将方向检查更改为纵横比:

替换

@media screen and (orientation : landscape)

@media screen and (min-aspect-ratio: 13/9)

替换

@media screen and (orientation : portrait)

@media screen and (max-aspect-ratio: 13/9)

来源:https://www.robinosborne.co.uk/2014/09/12/android-browsers-keyboards-and-media-queries/

【讨论】:

【参考方案2】:

我在 iOS 7 中遇到了类似的纵向/横向模式问题,这已解决:

检查您的 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" />

【讨论】:

谢谢你的作品。我刚刚根据最小和最大页面宽度定义了方向。即纵向:@media screen and (max-width: 956px)

以上是关于当 iOS 键盘处于活动状态时,CSS 方向会自动切换到横向的主要内容,如果未能解决你的问题,请参考以下文章

在键盘处于活动状态时呈现模态视图控制器

切换回搜索栏处于活动状态时,选项卡栏视图变为空白

当设备的(android)键盘处于活动状态时,jquery 移动弹出窗口小部件不会移动

当应用程序处于非活动状态并运行代码时,Swift iOS 应用程序会收到推送通知

当应用程序处于活动状态时,phonegap 通用推送 ios 警报

当应用程序处于活动状态时,iOS 处理推送通知点击