ホームページ ウェブフロントエンド htmlチュートリアル HTML Web ページでのメタ ビューポート属性スキルの紹介

HTML Web ページでのメタ ビューポート属性スキルの紹介

Mar 03, 2017 pm 04:25 PM

HTML メタ ビューポート属性の説明

ビューポートとは

モバイル ブラウザは、通常、この仮想「ウィンドウ」(ビューポート) にページを配置します。そのため、この仮想「ウィンドウ」(ビューポート) は画面よりも広いため、By を使用する必要はありません。各 Web ページを小さなウィンドウに押し込むと (モバイル ブラウザーに最適化されていない Web ページのレイアウトが崩れてしまいます)、ユーザーはパンやズームを行って Web ページのさまざまな部分を表示できます。 Safari ブラウザのモバイル バージョンでは、最近ビューポート メタ タグが導入されました。これにより、Web 開発者はビューポートのサイズとズームを制御できるようになります。他のモバイル ブラウザも基本的にこれをサポートしています。

ビューポートの基本

モバイル Web ページ用に最適化されたページで一般的に使用されるビューポート メタ タグは、おおよそ次のとおりです:

コードは次のとおりです:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>
ログイン後にコピー

width: ビューポートのサイズを制御します。値 (600 の場合)、または device-width などの特別な値はデバイスの幅です (単位は 100% にズームしたときの CSS ピクセルです)。
高さ: 幅に対応し、高さを指定します。
initial-scale: 初期スケーリング比。ページが初めてロードされたときのスケーリング比です。
maximum-scale: ユーザーがズームできる最大スケール。
minimum-scale: ユーザーがズームできる最小スケール。
ユーザースケーラブル: ユーザーが手動でズームできるかどうか

ビューポートに関するいくつかの質問

ビューポートは iOS 上で固有の属性であるだけでなく、Android や Winphone にもビューポートがあります。彼らが解決したい問題は同じです。つまり、デバイスの実際の解像度を無視し、dpi を通じて物理サイズとブラウザの間の解像度を直接リセットします。この解像度はデバイスの解像度とは何の関係もありません。たとえば、3.5 インチ -320*480 iPhone 3 gs、3.5 インチ -640*960 iPhone 4、または 9.7 インチ -1024*768 iPad 2 の場合、デバイスの解像度と物理サイズは異なります。異なる場合は、ビューポートを設定してブラウザ内で同じ解像度を持たせることができます。たとえば、Web サイトの幅が 800 ピクセルの場合、ビューポートの幅を 800 に設定すると、Web サイトがこれら 3 つの異なるデバイスの画面全体に表示されます。

ビューポートについて少し知識がある学生は、上記の知識をすでに知っているはずだと思います。今日私が言いたいことの焦点はこれではありません。ここで説明したいのは、iOS と Android でのビューポートのパフォーマンスのいくつかの違いです。

インターネットでビューポートに関する知識を検索すると、基本的にすべての情報は次のとおりです:

コードは次のとおりです:

<meta name="viewport" content="width=device-width,  initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,  user-scalable=no" />
ログイン後にコピー

このコードの意味は、ビューポートの幅を実際の解像度と等しくすることです。物理デバイスを保護し、ユーザーがズームできないようにします。すべての主流の Web アプリはこのように設定されており、その機能は意図的にビューポートを放棄し、ページを拡大縮小しないことです。このようにして、Web ページはデバイス上の実際の解像度と同じでなければなりません。より高く見えます。 PS をプレイしている学生なら、1000 * 1000 の画像を 500 * 500 ポイントに直接拡大縮小するとどうなるか知っているはずですよね?映像の歪みは避けられません。

しかし、私が作りたいアプリケーションは、ビューポートとズームを使用する必要があります。実際の解像度がどのようなものであっても、物理的なサイズがどのようなものであっても、ブラウザ内で統一された解像度を持ち、ユーザーがズームできないようにしたいと考えています。テストに使用したデバイスは、iPhone 4、iPad 2、htc の g11、メーカー不明の aquos Phone (Android システム)、ASUS の Android Pad、および Dell の winphone です。そして、途中で次の問題に遭遇しました。 1) ビューポートが明示的に設定されていない場合、幅はデフォルトで 980 に設定されます。ページ上のすべての要素の幅が 980 未満の場合、幅は 980 になります。ページの最も幅の広い位置が 980 を超える場合、幅は最大幅と等しくなります。つまり、デフォルトではページ全体を左から右に表示できます。ビューポートが設定されている場合、たとえば、user-scalable=no が のように設定されている場合、幅は引き続き 980 と表示されます。 ios (つまり、デフォルトでは dpi によってスケーリングされます) ですが、Android および Winphone ではスケーリングされなくなり、ブラウザーの解像度は実際の設定解像度と一致します。

2) iOS デバイスの場合、幅の設定は有効になりますが、Android の場合、幅の設定は有効になりません。 iOS デバイスの場合、スケーリング率、つまり dpi は、設定した幅と実際の解像度に基づいて自動的に計算されます。Android では、設定できる幅は特別なフィールド target-densitydpi です。つまり、ブラウザの幅、デバイスの実際の幅、dpi という 3 つの変数があります。それらの間の関係を簡単に式で表してみます (実際の関係ではありません。簡単に説明するためです)。 ここでの 3 つの変数のうち、デバイスの実際の幅は操作できない既知の値です。 . 、他の 2 つの変数の 1 つを設定して、他の変数に影響を与えることができます。iOS では、変更できるのはブラウザの幅であり、Android では、変更できるのは dpi とブラウザの幅です。が自動的に生成されます。 Android の場合、幅をどのように設定しても、ブラウザの幅には影響しません。

追記: ここで別の奇妙な問題について話させてください。htc の g11 (私はこの 1 台の htc 携帯電話しか持っていないので、他はテストしていません) で、幅を明示的に設定せずに dpi が設定されている場合、user-scalable= no は機能しません。つまり、 が有効になり、ユーザーによる画面のスケーリングを防ぐことはできません。 。幅の値を明示的に設定する必要がありますが、この値は Android ではブラウザの解像度には影響しません (iOS では依然として影響します)。それでも設定する必要があり、この値は 320 より大きい必要があります。 320 以下の場合、user-scalable=no は有効になりません。この問題は htc の g11 フォンでのみ発生し、aquos フォンでは発生しません。 Android との互換性は本当に頭の痛い問題です @_@、将来どれだけ落とし穴があるかわかりません。 winphone では、結果はさらに奇妙です。ビューポートの幅を 480 より大きい値に設定すると、user-scalable=no は無効になりますが、480 未満の値を設定すると、user-scalable=no は無効になります。効果。しかし、ビューポートの幅にどのような値を設定しても、winphone によって実際に表示される幅には期待されるような影響はなく、target-densitydpi も影響を及ぼしません。幅を480未満に設定すると、画面は拡大縮小されますが、どのような規則に従って拡大縮小されるのかがわかりません。これが Winphone の問題なのか、Dell の実装の問題なのかはわかりません。

3) この記事は前の記事と直接関連しています。iOS デバイスが横画面または縦画面の場合、横画面か縦画面に関係なく、dpi が自動的に調整されます。ブラウザの幅はビューポートで設定された値と等しいため、画面が横向きまたは縦向きモードの場合、ページに表示されるコンテンツのサイズは自動的に拡大縮小されて変更されます。 Android スマートフォンが横向きモードまたは縦向きモードの場合、dpi は変更されません。また、画面が横向きモードまたは縦向きモードの場合、Web ページはズームされません。このため、iOS では、水平および垂直画面のページにスクロール バーが表示されずに画面いっぱいになることを保証できますが、Android では、画面が水平方向にフルスクリーンである場合、垂直方向にフルスクリーンになることは保証できません。また、その逆も同様です。

4) iOS デバイスの場合、幅表示が定義されており、ページの最も広い位置が幅を超える場合、幅は無効となり、引き続き最も広い幅に従って表示されます (スクロール バーは表示されません)。しかし、このとき非常に奇妙な問題が発生します。携帯電話の画面を横向きと縦向きに何度か切り替えると、ページが自動的に拡大され、スクロールバーが表示されますが、実際には拡大された幅ではありません。設定した幅と同じでも構いません。これを防ぐには、幅をページの最も幅の広い部分より大きくするか、同じに設定する必要があります。

HTML Web ページのメタ ビューポート属性テクニックの詳細については、PHP 中国語 Web サイトの関連記事に注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

See all articles