【发布时间】:2014-02-25 18:46:44
【问题描述】:
我正在使用 Cordova 制作一个混合应用程序。
我的 css 文件中有以下媒体查询
@media only screen and (min-device-width : 320px) and (orientation: portrait) {
/*css goes here*/
}
@media only screen and (min-device-width : 320px) and (orientation: landscape) {
/*css goes here*/
}
以及类似的媒体查询,用于纵向和横向的各种设备宽度。
当我在 Nexus 4 上测试我的应用程序时,它不会检测到方向更改并更改 css,例如,如果我以纵向模式启动应用程序,那么它会根据设备宽度获取该应用程序的媒体查询纵向模式下的宽度,但是如果我改变手机的方向,它不会检测到新的宽度并应用相应宽度和横向方向的新 css,反之亦然。
我在这里遗漏了什么吗,CSS 媒体查询不应该自己检测方向的变化并应用适当的 CSS 吗?
【问题讨论】:
-
尝试
min-width而不是min-device-width来检查这是否也不起作用。 -
最小宽度有效!在实际设备上,即在 chrome 设备仿真中,由于某种原因它无法正常工作。
-
有时存在模拟器无法显示的依赖关系,因此我们需要在实际设备中对其进行测试。我认为你需要调整你的模拟器才能让它在那里工作。尝试搜索它会有所帮助xD
-
即使媒体查询本身是正确的,iOS 上的 Cordova / PhoneGap 应用程序仍可能需要一些 JavaScript 来实际处理方向更改为横向,从而获取 CSS。请参阅stackoverflow.com/questions/10999435/… ... 我花了很长时间才找到。
-
@rockstar - 您应该添加您的评论作为答案,因为这对我也有帮助。 “min-width”而不是“min-device-width”在方向改变时正确地为我的媒体查询提供服务。
标签: css cordova orientation media-queries