我正在使用多个平板电脑设备-均为Android 和iOS。目前,对于所有平板电脑,我都有以下分辨率差异。
- 1280 x 800
- 1280 x 768
1024 x 768(显然是iPad)-iPad没有此问题
应用基于设备方向的样式的最简单方法是使用以下语法来使用媒体查询的方向。
@media all and (orientation:portrait)
{
/* My portrait based CSS here */
}
@media all and (orientation:landscape)
{
/* My landscape based CSS here */
}
在所有平板电脑设备上都可以正常工作。但是,问题是,当设备处于纵向模式并且用户点击任何输入字段(例如,搜索)时,软键盘会弹出-这会减小网页的可见区域,并迫使其以基于横向的CSS呈现。在Android平板电脑设备上,这取决于键盘的高度。因此,最终该网页看起来很破损。因此,我不能使用CSS3的定向媒体查询来基于定向应用样式(除非有更好的媒体查询来定向定向)。这是一个小提琴http://jsfiddle.net/hossain/S5nYP/5/,它可以进行模拟-对于设备测试,请使用完整的测试页-http://jsfiddle.net/S5nYP/embedded/result/
这是从演示页面获取的行为的屏幕截图。
因此,除了解决此问题外,还有什么替代方法,如果基于本机CSS的解决方案不起作用,我愿意接受基于JavaScript的解决方案。
我在http://davidbcalhoun.com/2010/dealing-with-device-orientation上找到了一个代码段,该代码段建议在上面添加类并以此为目标。例如:
<html class="landscape">
<body>
<h1 class="landscape-only">Element Heading - Landscape</h1>
<h1 class="portrait-only">Element Heading - Portrait</h1>
<!-- .... more... ->
# CSS
.landscape .landscape-only { display:block; }
.landspace .portrait-only { display:none; }
.portrait .portrait-only { display:block; }
.portrait .landscape-only { display:none; }
你们对此怎么看?您有更好的解决方案吗?