--- title: '@viewport' slug: Web/CSS/@viewport tags: - '@viewport' - At-rule - CSS - Experimental - Layout - Mobile - Reference - Screen Layout - viewport translation_of: Web/CSS/@viewport ---
注: https://github.com/w3c/csswg-drafts/issues/4766 に @viewport を標準路線から除外することに関する議論があります。
@viewport は CSS のアット規則で、文書を通して表示するための{{glossary("viewport", "ビューポート")}}を構成することができます。第一にモバイル端末のために使用されますが、 (Microsoft Edge などの) "snap to edge" のような機能に対応するデスクトップブラウザーでも使用されます。
パーセント値で指定された長さは、初期ビューポートからの相対で計算されます。これはユーザーエージェントや記述されたスタイルがビューポートを調整する機会を持つ前のビューポートです。これはふつう、デスクトップブラウザーのウィンドウの寸法に基づくもので、全画面モードのものではありません。
モバイル端末 (または全画面モードのデスクトップ端末) では、初期ビューポートはふつう端末の画面のうちアプリケーションが利用できる部分です。これは全画面の場合もあれば、全画面からオペレーティングシステムが制御する領域 (タスクバーなど) を引いた部分の場合、アプリケーションが利用できる画面領域 (全画面又は画面からオペレーティングシステムやその他のアプリケーションが所有する領域を引いた部分) の場合もあります。
@viewport {
width: 100vw; /*実際のビューポートの幅を端末の幅に設定*/
}
メモ: <meta name="viewport"> タグを使用すると、 @viewport より優先します。
このアット規則は波括弧で囲まれた CSS ブロック内に、一連の入れ子になった{{glossary("descriptor (CSS)", "記述子")}}を含みます。
1.0 または 100% のズーム倍率はズーム無しに相当します。より大きい値はズームイン、より小さい値はズームアウトになります。
現時点では @viewport のブラウザーの互換性は弱く、対応は Internet Explorer 及び Edge で広く行われています。これらのブラウザーでも、少数の記述子しか利用できません。 @viewport は対応していないブラウザーからは無視され、理解できない記述子は無視されるでしょう。
min-widthmax-widthwidthmin-width と max-width の両方を設定するための一括指定です。min-heightmax-heightheightmin-height と max-height の両方を設定するための一括指定です。zoommin-zoommax-zoomuser-zoomorientation@viewport {
min-width: 640px;
max-width: 800px;
}
@viewport {
zoom: 0.75;
min-zoom: 0.5;
max-zoom: 0.9;
}
@viewport {
orientation: landscape;
}
| 仕様書 | 状態 | 備考 |
|---|---|---|
| {{SpecName("CSS Round Display", "#extending-viewport-rule", "@viewport")}} | {{Spec2("CSS Round Display")}} | {{cssxref("@viewport/viewport-fit", "viewport-fit")}} 記述子を定義。 |
| {{SpecName('CSS3 Device', '#atviewport-rule', '@viewport')}} | {{Spec2('CSS3 Device')}} | 初回定義 |
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
{{Compat("css.at-rules.viewport")}}
<meta name="viewport"> の項目