2011-04-04 121 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