所有答案都不正确。显示键盘时,Android 将从纵向切换到横向。
不同的键盘也需要测试,因为它们会占用更多的垂直空间。Swift 键盘占用更多的垂直空间,因此您不能使用这样的解决方案,@media screen and (min-aspect-ratio: 13/9) { /* landscape styles here */}
因为这在很多手机上都会失败。
唯一的解决方案是使用 javascript。
在较新的 Android 设备上,您可以测试和使用新的 window.screen.orientation api。
在 iOS 上,您可以使用 window.orientation 效果很好。即Math.abs( window.orientation ) === 90
是风景
作为后备,您可以使用window.screen.width > window.screen.height
它来覆盖不支持新 window.screen.orientation api 的真正旧的 Android 设备
然后您需要做的就是在调整大小/方向更改事件上添加/删除一个类。
/* Android Orientation */
var orientation = window.screen.orientation || window.screen.mozOrientation || window.screen.msOrientation || null;
/* Check */
if ( orientation && orientation.type ) {
/* Landscape */
if ( orientation.type === 'landscape' || orientation.type === 'landscape-primary' || orientation.type === 'landscape-secondary' ) {
return 'landscape';
/* Portrait */
} else {
return 'portrait';
}
}