残念ながら、各ブラウザにはビューポート メタ タグの独自の実装があります。さまざまな組み合わせがさまざまなブラウザーで機能します。
Android 2.2 : ビューポート メタ タグはまったくサポートされていないようです。
Android 2.3.x/3.x : user-scalable=noを設定すると、ビューポート メタ タグのスケーリングも無効になります。これがおそらく、幅オプションが効果がない理由です。ブラウザがコンテンツをスケーリングできるようにするには、user-scalable=yesを設定する必要があります。ズームを無効にするには、最小スケールと最大スケールを同じ値に設定して、縮小または拡大できないようにします。サイトがぴったりと収まるまで、最初の規模を調整します。
<meta name="viewport" content="initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,width=device-width,height=device-height,target-densitydpi=device-dpi,user-scalable=yes" />
Android 4.x : 2.3.x と同じルールが適用されますが、最小スケールと最大スケールが適用されなくなり、user-scalable=yesを使用する場合、ユーザーは常にズームできます。「no」に設定すると、独自のスケールが無視されます。これは私が今直面している問題であり、私をこの質問に引き寄せました... 4.x でズームとスケールを同時に無効にすることはできないようです。
iOS/Safari (4.x/5.x テスト済み) : スケールは期待どおりに機能します。user-scalable=0でスケーリングを無効にできます(キーワード yes/no は 4.x では機能しません)。iOS/Safari にもtarget-densitydpiの概念がないため、エラーを避けるためにそれを除外する必要があります。期待どおりの方法でズームをオフにできるため、最小値と最大値は必要ありません。幅のみを使用しないと、 iOS の向きのバグが発生します
<meta name="viewport" content="initial-scale=1.0,width=device-width,user-scalable=0" />
Chrome : スケールは iOS と同じように期待どおりに機能し、最小値と最大値が尊重され、user-scalable=noを使用してズームをオフにできます。
<meta name="viewport" content="initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,width=device-width,user-scalable=no" />
結論: 基本的なブラウザ/デバイスの検出後に、かなり単純な JS を使用して、それに応じてコンテンツを設定できます。この種の検出が嫌われていることは承知していますが、この場合、各ベンダーが独自のことを行っているため、ほとんど避けられません。ビューポートを使用せずに Android 4.x でズームを無効にする解決策がある場合は、お知らせください。
[編集]
Android 4.x Chrome ブラウザー(ほとんどの国でプリインストールされていると思います): ユーザーがズームできず、ページがフルスクリーンであることを確認できます。欠点: コンテンツの幅が固定されていることを確認する必要があります。下位の Android バージョンではこれをテストしていません。これを行うには、例を参照してください。
<meta name="viewport" content="width=620, user-scalable=no" />
[編集2]
iOS/Safari 7.1 : v7.1 以降、Apple は と呼ばれるビューポート メタ タグの新しいフラグを導入しましたminimal-ui
。フルスクリーン アプリを支援するために、フルスクリーン エクスペリエンスのためにアドレス バーと下部のツールバーを非表示にします (完全なフル スクリーン API ではありませんが、閉じており、ユーザーの同意は必要ありません)。かなりの数のバグがあり、iPad では動作しません。
<meta name="viewport" content="initial-scale=1.0,width=device-width,user-scalable=0, minimal-ui" />
[編集3]
iOS/Safari 8 Beta 4 : EDIT 2 に記載されているビューポート メタ タグminimal-ui
は、このリリースで Apple によって削除されました。ソース - WebKit ノート