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

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

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

推薦する

Windows サーバー ファイルをローカルにバックアップする方法、Windows サーバー データ バックアップ ソリューション

重要なデータはバックアップする必要があり、リアルタイムでバックアップする必要があります。そうしないと...

Centos7 に Docker をインストールします (2020 の最新バージョンが利用可能、コピーして貼り付けるだけ)

操作については、こちらの公式ドキュメントを参照してください。インストール1. 古いバージョンの do...

Linux ソースコードからのソケット (TCP) クライアント側での接続の例の詳細な説明

序文著者は、アプリケーションからフレームワーク、オペレーティング システムに至るまで、あらゆるコード...

JSは画像の滝の流れの効果を実現します

この記事では、画像ウォーターフォールフローを実現するためのJSの具体的なコードを参考までに共有します...

Webデザインの経験: Webコードを効率的に書く

本来、この第 7 章では、デザインにおけるレイヤーと空間テクニックについて深く議論するはずです。しか...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

IE 環境での css-vars-ponyfill の使用に関する詳細な説明 (nextjs ビルド)

css-vars-ポニーフィルCSS 変数を使用して Web ページのスキニングを実現すると、互換...

MySql の忘れたパスワードの変更方法はバージョン 5.7 以上に適しています

1. まずmysqld.exeプロセスを停止します2. cmd を開き、mysql の bin ディ...

ショートカットアイコンとアイコンコードの違いの紹介

ステートメント 1: <link rel="shortcut icon" ...

MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

くさびコンピュータにインストールされている MySQL のバージョンが比較的古く、おそらくバージョン...

HTML コードの書き方に関する提案のまとめ

リソースファイルのプロトコルを省略する画像、メディアファイル、スタイル、スクリプトの URL では、...

Docker で lnmp をデプロイする詳細な手順

目次Centosイメージを取得するCentos ベースの nginx コンテナを生成するCentos...

vagrant+virtualBoxで仮想マシンを構築する方法

1. はじめにVagrant は、仮想マシン (VirtualBox) を構築および管理するためのツ...

Vuexはシンプルなショッピングカートを実装します

この記事では、参考までに、Vuex の具体的なコードを共有して、簡単なショッピングカートを実装します...

Windows で MySQL サービスを停止または削除できない問題の解決策

圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...