2011-04-04 84 views
23

我正在尝试为移动Safari配置视口。使用视口元标记,我试图确保没有缩放,并且不能水平滚动视图。这是我使用的meta标签:Mobile Safari Viewport - 防止水平滚动?

<meta id="viewport" name="viewport" content ="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 

,当我加载页面我的iPhone,它似乎没关系看:

screenshot

但我可以水平滚动,使其看起来是这样的(这是因为远在右边,我可以去:

screenshot

当我摆成横向视图,页面呈现为预计锁定水平滚动位置。

我想弄清楚如何使这个页面不水平滚动。有没有可能我有一些页面元素将内容推出?我甚至不希望有一个正确的视口套件是可能的,但我在这里抓住吸管。

回答

19

是否有可能我有一些页面元素将内容推出?

是的,的确如此。视口设置只定义可见的视口区域,但不处理关闭横向平移。

因此,为避免发生这种情况,请在包含您的内容的元素上设置overflow:hidden,否则,避免元素溢出。

注:其他移动浏览器也支持视口元标记一段时间,所以你也想测试这些。

+0

Figure这将是简单的事情。仍然不确定推出的是什么,但在主显示元素上使用overflow属性解决了问题。谢谢! – 2011-04-21 17:50:06

+0

感谢您的回答。 FWIW,对我来说,这是一个硬编码的“______”,用于评论,导致它太宽。 – Danger14 2013-03-04 22:45:34

+0

NB是什么意思 – 2015-07-20 00:41:43

13

body { overflow-x: hidden; }也有效。

+0

这似乎不适用于Android设备。我有一个'overflow-x'设置为隐藏的页面,仍然可以用我的鼠标滚动。 – 2012-06-19 16:45:52

+6

问题是移动Safari浏览器:)对于Android浏览器,我已经[这个答案](http://stackoverflow.com/a/10739042/326073)成功。 – HaL 2012-06-20 19:05:26

+0

这也打破了垂直滚动,使滚动真的很慢 – Acosta 2016-11-14 14:19:33

6

body div {overflow:hidden;} @ media queries

。这将阻止任何人推送内容。

+0

我用'body> div {overflow:hidden; }'以防止不必要的裁剪 – Leftium 2015-02-16 08:41:27

11

这里的派对迟到了,但我刚刚有一个类似的问题,我在iPhone 5上进行水平滚动时,该网站实际上显示为宽度的两倍,右半边完全空了。

其实,我只是需要视meta标签的更改:

<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0' /> 

到:

<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0' /> 

添加“初始规模”锁定下来,使之仅仅垂直滚动如预期。

+1

你的问题是一个更好的解决方案。 – 2013-10-23 07:42:30

4

不知道是否它只是我还是有些发布的代码已被输入错误,但:

应该这样

<meta name='viewport' content='content="width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0' /> 

没有看过这样的

<meta name='viewport' content='width=device-width, maximum-scale=1.0, minimum-scale=1.0, initial-scale=1.0' /> 

所以内容只列出一次,因为它在代码的末尾没有“因为它没有关闭”.....

+0

绝对,看起来就像是一个错字 – 2015-06-19 18:07:27