iPhone 的 CSS

2011-03-16 13:42:02 +08:00
 xuhel
貌似都不支持 横向和纵向分别定义。。。
5705 次点击
所在节点    iDev
5 条回复
fireyy
2011-03-16 16:52:24 +08:00
leojoy710
2011-03-16 16:55:00 +08:00
@fireyy 正解...
问题是切换的时候屏幕会闪...这个很烦...
shinyzhu
2011-03-17 08:43:03 +08:00
我做过一个运行在iPad上面的Web App,但基本原理都一样的。
在头部引用CSS文件的时候就可以为不同方向分别引入不同的样式表:

<link rel="stylesheet" type="text/css" href="/content/css/mc.portrait.css" media="all and (orientation:portrait)" />
<link rel="stylesheet" type="text/css" href="/content/css/mc.landscape.css" media="all and (orientation:landscape)" />

响应方向变化可以为body注册orientationchange事件:

<body onorientationchange="mcHandleOrientationChange();">


js函数:


/* OrientationChanged */
function mcHandleOrientationChange(e) {
switch (window.orientation) {
case 0: //Portrait
case 180: //Portrait (upside-down portrait)
mcCommon.updateViewForOrientation('portrait');

break;
case -90: //Landscape (right, screen turned clockwise)
case 90: //Landscape (left, screen turned counterclockwise)
mcCommon.updateViewForOrientation('landscape');

break;
}
}

这样就可以了。但是以下是要注意的:

当然你可以在脚本里注册body的事件,但是绝对不能用jQuery的代码注册orientationchange事件,否则转换方向的时候会非常非常卡。
xuhel
2011-06-13 15:53:13 +08:00
不过经过实验把 @media screen 的判断都写在 一个 css 文件里面,只会读取到最后 @media screen 里面定义的效果。
xuhel
2011-06-13 15:54:11 +08:00
还是谢谢大家,这个用@shinyzhu 的方法解决了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/9835

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX