从横向到纵向如何解决Viewport问题

我一直在研究iPod和iPhone 4的Safari的视口问题,但是在这个问题上我找不到任何答案。 关于从纵向到横向的问题有几条线索,但从横向到纵向不是。 问题如下:

我以前从肖像到风景时,有正常的缩放问题,所以我添加了标签:

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

这样就解决了这个问题。 现在,当我回到肖像模式,我所做的页面被拉伸,并呈现与增加的右边距。 这使得页面更宽,所以你必须扫到左边来获取页面的原始位置(认为它保留了新的“右边距”)。

对不起,如果有人已经回答了这个问题,但我似乎无法find任何回应这个问题。

让我知道是否需要一些额外的信息。 请记住这是我的第一个问题:

谢谢!

编辑:我正在运行iOS 6,并得到这个问题。 当我在iOS 5.1.1上运行我的页面时,它显示正常,所以它可能是以前修复的视口错误的新版本。

我想你想添加到您的CSS或样式块。 ( 这是在这个职位 )

  html { -webkit-text-size-adjust: none; /* Never autoresize text */ } 

我通过jquery和css发现了一个解决方法。 我不知道它是如何有效的,但是这是一个适合我需求的选项。 基本上,将#orient id标记添加到您的body标记中,然后制作具有您遇到问题的设备的最大宽度的.ios6-mobile类。 在我的例子中,这是iPhone的大小运行ios6,所以我有一个320px的最大宽度。 这里是jQuery代码。

jQuery的

 window.addEventListener("orientationchange", function() { if(window.orientation == 0){ $("#orient").addClass("io6-mobile"); } else if (window.orientation !== 0){ $("#orient").removeClass("io6-mobile"); } }, false); 

CSS

 #orient { /* Don't need any code. Just a helpful ID to pass to jQuery */ } .ios6-mobile { max-width:320px /* change the width to whatever size your device is */; overflow:hidden; } 

希望这有助于某种方式!

这帮助我解决了同样的问题

 @media (max-width:640px) and (orientation: landscape) { body {-webkit-text-size-adjust: 100%;} } 

而对于视网膜显示器的错误

 @media (max-width:640px) and (orientation: landscape) and (-webkit-min-device-pixel-ratio:2) { body {-webkit-text-size-adjust: 70%;} }