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

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

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を使用してスクロールシャドウ効果を実現します

推薦する

初心者向けの一般的な Linux システムコマンドの完全なリスト

Linux コマンドの学習は、ほとんどの初心者にとって最大の障害です。今日は、Linux システムで...

MySQL で複数の主キーが定義されているエラーの解決方法

主キーを作成するには 2 つの方法があります。 テーブルテーブル名を作成( フィールド名タイプ、 フ...

SQL 集計、グループ化、並べ替え

目次1. 集計クエリ1. COUNT関数2. SUM関数3. AVG関数4. MAX関数とMIN関数...

Alibaba Cloud centos7にmysql8.0.22をインストールする詳細なチュートリアル

1. MySQLインストールパッケージをダウンロードするまず、https://dev.mysql.c...

ブラウザでビデオプレーヤーを実装するための基本的な考え方とコード

目次序文ブラウザにおけるオーディオとビデオに関する知識のまとめビデオエンコーディング包装形態オーディ...

MySQL 継続的集計の原理と使用法の分析

この記事では、例を使用して、MySQL の継続的な集計の原理と使用方法を説明します。ご参考までに、詳...

仮想スクロールを簡単に実装するためのVueサンプルコード

目次序文ローリング原理成し遂げるソースコード参照する序文モバイル Web ページの日常的な開発では、...

MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...

ハイパーコネクションの4つの状態の適用の詳細な説明

ブラウザの問題かもしれないと思うかもしれませんが、スタイル定義の順序が間違っている可能性が高いです。...

Vue3.0+vite2は動的非同期コンポーネントの遅延読み込みを実装します

目次Viteプロジェクトを作成するコンポーネントの作成Viteプロジェクトを作成するパフォーマンスが...

初心者向けMySQLシリーズチュートリアル

目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...

Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策

docker リモート API を学習した学生であれば、ポート 2375 についてよくご存知だと思い...

Linux C バックグラウンドサービスプログラムの単一プロセス制御の実装

導入通常、バックグラウンド サーバー プログラムには 1 つのプロセスのみが必要ですが、単一のプロセ...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...