モバイルSafariのビューポートを構成しようとしています。ビューポートメタタグを使用して、ズームがないこと、およびビューを水平方向にスクロールできないことを確認しようとしています。これは私が使用しているメタタグです。
<meta id="viewport" name="viewport" content ="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
IPhoneでページをロードすると、大丈夫に見えます:
しかし、水平にスクロールできるので、次のようになります(これは、可能な限り右側にあります:
これを横向きにすると、ページは期待どおりにレンダリングされ、水平スクロール位置がロックされます。
このページをまったく水平にスクロールしないようにする方法を見つけようとしています。コンテンツを押し出すページ要素を持っている可能性はありますか?正しいビューポートセットでそれが可能になるとは思っていませんが、ここでストローを把握しています。
コンテンツを押し出すページ要素を持っている可能性はありますか?
はい、そうです。ビューポート設定は、表示されるビューポート領域のみを定義しますが、横方向のパンをオフにすることは扱いません。
そのため、これを回避するには、コンテンツを含む要素にoverflow:hiddenを設定するか、要素がオーバーフローしないようにします。
NB:他のモバイルブラウザもしばらくの間ビューポートメタタグをサポートしているため、それらでもテストする必要があります。
body { overflow-x: hidden; }
も機能します。
ここでのパーティーに遅刻しましたが、iPhone 5で水平スクロールを行うと同様の問題が発生しました。サイトは事実上2倍の幅で表示され、右半分は完全に空になりました。
実際、ビューポートメタタグを次のように変更する必要がありました。
<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' />
「初期スケール」を追加すると、期待どおりに垂直にスクロールするようにロックされました。
body div {overflow:hidden;} @メディアクエリ
。これにより、要素がコンテンツを押し出すことを防ぎます。
私だけなのか、投稿されたコードの一部が間違って入力されたのかはわかりませんが、
これは
<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' />
そのため、コンテンツは、コードの末尾に「終了がない」ために一度だけリストされます。
このバリエーションをお試しください
html, body{ overflow-x: hidden; }