用語辞典・OS・ブラウザ

ビューポート

ビューポートとは

viewport(ビューポート)は、ブラウザでWebページを表示するために使える論理的な表示領域です。CSSの長さ、メディア問い合わせ、固定配置、スクロール位置等が参照する「窓」に相当します。

機器画面全体、ブラウザー時間窓、Web文書全体とは別です。タブbarやアドレス欄が画面の一部を使い、文書は表示領域より長く、スクロールによって見える部分が移ります。

モバイルではレイアウト表示領域と視覚表示領域を分けると、ピンチ操作拡大や画面上のキーボードで「レイアウトは同じなのに見える範囲だけ変わる」現象を説明できます。

長い文書へレイアウト表示領域という配置用の窓を置き、その内側を視覚表示領域がスクロール・拡大して見る画面、ブラウザーchrome、レイアウト、視覚、文書を入れ子で分ける
長いWeb文書を端末画面、ブラウザーの操作領域、レイアウトビューポート、移動する視覚ビューポートの枠で囲み、固定ツールバー、スクロール、ウィンドウサイズ変更、画面方向、画面キーボード、ピンチズーム、端末幅に応じた再配置を示すピクトグラム図解
図1レスポンシブレイアウトは主に論理的な表示領域幅へ反応します。物理画面画素数が多い端末ほど必ずデスクトップ配置になるわけではありません。

五つの領域を分ける

Screen機器の表示面

OS UIや複数時間窓を含む物理表示側の領域です。

Browser時間窓ブラウザー製品の時間窓

タブ、アドレス欄、側パネル等を含み、コンテンツ以外にも面積を使います。

Layout ビューポートCSSレイアウトの基準となる領域

初期包含ブロック、ビューポート単位、メディアクエリの基準になります。

Visual表示領域現在見えている部分

ピンチ操作拡大やキーボード表示でレイアウトとは別に大きさ・ずれが変わります。

Documentスクロール可能なページ全体

表示領域外にも続き、コンテンツ量とレイアウトに応じてスクロール範囲を持ちます。

スクロールは文書を作り直す操作ではない

通常のスクロールは既にレイアウトされた文書に対し、表示領域が見るずれを変えます。position: fixedの要素は表示領域へ固定され、通常流れのコンテンツは下を通過します。

position: sticky、スクロールコンテナー、transformがあると、位置の基準となる包含ブロックが変わります。固定したヘッダーが本文を隠さないよう、スクロール余白とフォーカス移動を確認します。

サイズ変更と画面方向変更はレイアウトを変える

時間窓幅が変わるとメディア問い合わせ、フレックス・グリッド、行折り返し、画像大きさが再計算されます。スマートフォンを縦向きから横向きへ回す場合も論理的な表示領域寸法が変わります。

機器名やUser-Agentで列数を固定せず、コンテンツが読めるブレークポイントを実寸で決めます。分割画面やデスクトップ時間窓では同じ機器でも幅が連続的に変わります。

ページ拡大とピンチ操作拡大は同じではない

CSSOM Viewは、ページ拡大が初期表示領域の大きさへ影響し、視覚表示領域規模倍率は拡大鏡のようにレイアウトを変えず見える範囲を変える、と区別します。

ブラウザー・プラットフォーム実装差はありますが、ピンチ操作後にwindow.innerWidthだけを見てオーバーレイ位置を決めるとずれる場合があります。VisualViewport APIのずれ・大きさを必要時に使います。

モバイル表示領域設定は論理的な幅の初期値を伝える

モバイルブラウザーはデスクトップ向けサイトを縮小表示するため、広い既定レイアウト表示領域を仮定することがあります。表示領域metaで機器幅と初期規模を示すとレスポンシブCSSを意図した論理的な幅で適用できます。

利用者拡大を禁止する設定は弱視利用を妨げます。拡大可能性を残し、強い拡大でもコンテンツが欠けず再配置するか確認します。

画面上のキーボードは見える範囲を狭める

入力へ焦点するとキーボードが画面を覆うか視覚表示領域を縮めます。画面下部固定ボタンやダイアログがキーボード下へ隠れないよう、視覚表示領域変化と安全領域を考慮します。

ビューポートはWebページを見る論理的な窓です。物理画面やブラウザーウィンドウ、文書全体とは区別し、レイアウトビューポートと視覚ビューポートの差を使って、サイズ変更、拡大、画面キーボードの影響を説明します。

CSS pixel、page zoomとvisual viewport scale、viewport・screen情報、VisualViewport API:W3C「CSSOM View Module」。viewport metaとlayout viewport adaptation:W3C「CSS Viewport Module Level 1」

関連用語