网站转向景观与键盘

时间:2016-04-19 19:30:09

标签: javascript css mobile keyboard landscape-portrait


我遇到了一个有趣的问题。在我的网站上,我有两个版本的手机导航栏 - 横向和纵​​向。要检测这两个,我使用CSS媒体方向。

@media (orientation: landscape)
 {
  /* inline menu */ 
 }

@media (orientation: portrait)
 {
  /* multiple rows menu */
 }

然而,当我打开键盘页面变成横向时,因为实际页面尺寸变小了。
有人可以帮我解决这个问题吗?我所能想到的只是输入上的焦点事件,因此无论何时它们都是聚焦的,肖像手册都会打开,但即使在风景上它也会改变菜单。 这是一个说明性的图像 Portrait/Landscape/Portrait with keyboard

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您选中Media Queries W3C Recommendation

你会发现这个有趣的句子:

  

'orientation'媒体功能是'肖像'时的值   'height'媒体特征大于或等于该值   'width'媒体功能。否则'方向'就是'风景'。

因此,当键盘打开时,您的页面将变为横向模式。

有多种方法可以解决这个问题 检查this回答。

答案 1 :(得分:0)

您应该完全忽略身高/方向。像这样:

@media (max-width: 480px)
 {
  /* inline menu */ 
 }

@media (min-width: 481px)
 {
  /* multiple rows menu */
 }