ビューポートの基本原理と詳細な使用方法

ビューポートの基本原理と詳細な使用方法

1. ビューポートの概要

モバイル ブラウザは通常、画面よりも幅の広い仮想ウィンドウにページをレンダリングします。この仮想ウィンドウがビューポートです。この仮想ウィンドウの目的は、モバイル デバイスに適切に適合していない Web ページをユーザーに完全に表示できるようにすることです。モバイル デバイスを使用して Web ページのデスクトップ バージョンにアクセスすると、水平スクロール バーが表示されることがあります。ここでの表示可能領域の幅は、ビューポートの幅です。

通常の使用では、次のコードを使用してページを拡大縮小できます。

<meta name="viewport" content="width=デバイス幅、初期スケール=1" />

ページを拡大したくない場合は、次のコードを使用してください。

<meta name="viewport" content="width=デバイス幅、初期スケール=1.0、最小スケール=1.0、最大スケール=1.0、ユーザースケーラブル=いいえ">

2. CSSのピクセルとデバイスピクセルの違い

デスクトップ Web ページを開発する場合、CSS の 1px はデバイス上の 1px と等しくなります。ただし、CSS の 1px は単なる抽象的な値であり、実際のピクセル数を表すものではありません。また、モバイル デバイスでは、デバイスごとにピクセル密度が異なるため、CSS の 1px は実際のデバイスのピクセル値と等しくない場合があります。ユーザーがズームすると、CSS で 1px が表すデバイス ピクセルの数も変わります。この比率はdevicePixelRatioです

物理ピクセル / 独立ピクセル = devicePixelRatio
ブラウザを拡大し、コンソールで window.devicePixelRatio を印刷して、devicePixelRatio のサイズを確認できます。ここでの独立したピクセルは、CSS では px として理解できます。

3. ビューポートの基本

コード:

<meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1">

以下はビューポートのいくつかのプロパティです。これらのプロパティは組み合わせて使用​​できます。複数のプロパティはカンマで区切る必要があります。ここでは、理想的な条件でのビューポートを指す「理想的なビューポート」という概念を展開します。ユーザーは、ズームや水平スクロールをすることなく、Web ページのすべてのコンテンツを正常に表示でき、CSS で定義されているテキストがどれだけ小さくても、すべてのテキストをはっきりと見ることができます。

財産説明する
ビューポートの幅を制御します。数値を指定するか、デバイス幅を設定して指定することができます。
身長ビューポートの高さを制御します。このプロパティはあまり重要ではなく、ほとんど使用されません。
初期スケールページが最初に読み込まれるときの理想的なビューポートのズームレベルを制御します。通常は1に設定されていますが、小数点を指定することもできます。
最大スケールユーザーに許可される最大ズーム値は小数点付きの数値です。
最小スケールユーザーが許可する最小ズーム値(小数点付きの数値)
ユーザースケーラブルユーザーにズームを許可するかどうか。値は「no」または「yes」で、no は許可されないことを意味し、yes は許可されることを意味します。

4. 高度なビューポート

1.幅と初期スケール
width と initial-scale が設定されている場合、ブラウザは適応のために最大値を自動的に選択します。設定した場合:

<meta name="ビューポート" content="幅=400, 初期スケール=1">

ブラウザは適応のために大きい値を選択します。現在のウィンドウの理想的なビューポートの幅が 300 で、初期スケールの値が 1 の場合、幅の値は 400 になります。現在のウィンドウの理想的なビューポートが 480 の場合、480 が使用されます。

実際、width=device-widthとinitial-scale=1はどちらもアプリケーションの理想的なビューポートを表します。しかし、iPadやiPhone、IEなどのモバイルデバイスでは、水平画面か垂直画面かに関係なく、垂直画面の幅がデフォルトで使用されます。最も互換性のある書き方は次のとおりです。

<meta name="viewport" content="width=デバイス幅、初期スケール=1">

2. プロパティを動的に変更する

a. ドキュメント.write()

document.write('<meta name="viewport" content="width=device-width,initial-scale=1">')

b.set属性

var mvp = document.getElementById('testViewport');
mvp.setAttribute('content','width=480');

ビューポートの概念

モバイル ブラウザは通常、画面よりも幅の広い仮想ウィンドウにページをレンダリングします。この仮想ウィンドウがビューポートです。この仮想ウィンドウの目的は、モバイル デバイスに適切に適合していない Web ページをユーザーに完全に表示できるようにすることです。モバイル デバイスを使用して Web ページのデスクトップ バージョンにアクセスすると、水平スクロール バーが表示されることがあります。ここでの表示可能領域の幅は、ビューポートの幅です。

CSS におけるピクセルとデバイス ピクセルの違い

デスクトップ Web ページを開発する場合、CSS の 1px はデバイス上の 1px と等しくなります。ただし、CSS の 1px は単なる抽象的な値であり、実際のピクセル数を表すものではありません。また、モバイル デバイスでは、デバイスごとにピクセル密度が異なるため、CSS の 1px は実際のデバイスのピクセル値と等しくない場合があります。ユーザーがズームすると、CSS で 1px が表すデバイス ピクセルの数も変わります。この比率はdevicePixelRatioです

物理ピクセル / 独立ピクセル = devicePixelRatio

ブラウザを拡大し、コンソールで window.devicePixelRatio を印刷して、devicePixelRatio のサイズを確認できます。ここでの独立したピクセルは、CSS では px として理解できます。

ビューポートの基本<br /> 典型的なモバイル向けに最適化されたサイトには、次のような内容が含まれます。

<meta name="viewport" content="width=デバイス幅、初期スケール=1、最大スケール=1">

以下はビューポートのいくつかのプロパティです。これらのプロパティは組み合わせて使用​​できます。複数のプロパティはカンマで区切る必要があります。ここでは、理想的な条件でのビューポートを指す「理想的なビューポート」という概念を展開します。ユーザーは、ズームや水平スクロールをすることなく、Web ページのすべてのコンテンツを正常に表示でき、CSS で定義されているテキストがどれだけ小さくても、すべてのテキストをはっきりと見ることができます。

財産説明する
ビューポートの幅を制御します。数値を指定するか、デバイス幅を設定して指定することができます。
身長ビューポートの高さを制御します。このプロパティはあまり重要ではなく、ほとんど使用されません。
初期スケールページが最初に読み込まれるときの理想的なビューポートのズームレベルを制御します。通常は1に設定されていますが、小数点を指定することもできます。
最大スケールユーザーに許可される最大ズーム値は小数点付きの数値です。
最小スケールユーザーが許可する最小ズーム値(小数点付きの数値)
ユーザースケーラブルユーザーにズームを許可するかどうか。値は「no」または「yes」で、no は許可されないことを意味し、yes は許可されることを意味します。

高度なビューポート

1.幅と初期スケール
width と initial-scale が設定されている場合、ブラウザは適応のために最大値を自動的に選択します。設定した場合:

<meta name="ビューポート" content="幅=400, 初期スケール=1">

ブラウザは適応のために大きい値を選択します。現在のウィンドウの理想的なビューポートの幅が 300 で、初期スケールの値が 1 の場合、幅の値は 400 になります。現在のウィンドウの理想的なビューポートが 480 の場合、480 が使用されます。

実際、width=device-widthとinitial-scale=1はどちらもアプリケーションの理想的なビューポートを表します。しかし、iPadやiPhone、IEなどのモバイルデバイスでは、水平画面か垂直画面かに関係なく、垂直画面の幅がデフォルトで使用されます。最も互換性のある書き方は次のとおりです。

<meta name="viewport" content="width=デバイス幅、初期スケール=1">

2. プロパティを動的に変更する

a. ドキュメント.write()

document.write('<meta name="viewport" content="width=device-width,initial-scale=1">')

b.set属性

var mvp = document.getElementById('testViewport');
mvp.setAttribute('content','width=480');

さて、この記事はここで終わりです。必要に応じて選択してください。一般的には、適応のないPCやモバイル端末はスケーリングに対応していないものでも使えます。モバイル端末に飛びついてスケーリングできれば影響はありません。

<<:  いくつかの CSS3 タグの短縮形 (推奨)

>>:  純粋なCSSを使用してスクロールシャドウ効果を実現します

推薦する

html2canvas で破線境界線を実装する例

html2canvas は、HTML 要素からキャンバスを生成するライブラリです。描画されるキャンバ...

SQL の左結合と右結合の原理と例の分析

テーブルが 2 つあり、テーブル A のレコードがテーブル B に存在しない可能性があります。左結合...

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

CSS のマージンの崩壊問題を解決する方法

まず、マージン崩壊が発生する 3 つの状況を見てみましょう。 1. 隣接する 2 つのブロックレベル...

MySQLの重複排除操作を極限まで最適化する方法

目次1. インデックスと変数の賢い使用1. インデックスなしの比較テスト2. created_tim...

Vue2.x の応答性の簡単な説明と例

1. Vue レスポンシブの使用法を確認する​ Vue の応答性は、私たち全員がよく知っています。 ...

JavaScript 関数呼び出しの典型的なサンプルコード

目次JavaScript 関数呼び出しの典型的な例JS関数の定義と呼び出し方法要約するJavaScr...

Windows での MySQL 8.0.16 のインストールと設定方法のグラフィック チュートリアル

この記事は、参考のためにMySQL 8.0.16のインストールグラフィックチュートリアルを記録してい...

Dockeにredisをインストールする方法

1. redisイメージを検索する docker 検索 redis 2. Redisイメージをダウン...

Django+vue 登録とログインのサンプルコード

登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

Zabbix 監視 Docker アプリケーション構成

コンテナの応用はますます一般的になっていますが、大量のコンテナをどのように管理すればよいのでしょうか...

埋め込みJavaScriptと外部リンクの基本的な応用方法

目次埋め込みJavaScriptと外部リンクの基本的な応用JavaScript の記述方法には、イン...

ホワイトボードを踏まないようにするゲームを実装するための HTML+CSS+JS

目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...