Widely available 安心して使用可能。主要ブラウザで広くサポートされている。

概要

svh/svw はUIバーが表示された状態の最小ビューポート、lvh/lvw はUIバーが隠れた状態の最大ビューポート、dvh/dvw はUIバーの表示状態に応じて動的に変化するビューポートサイズ。従来の vh ではモバイルブラウザのアドレスバーによるサイズ変動の問題があったが、これらの単位で意図通りの表示が可能になる。

対応ブラウザ

デスクトップ

Chrome 108+
Edge 108+
Safari 15.4+
Firefox 101+

モバイル

Chrome Android 108+
Safari iOS 15.4+
Firefox Android 101+

基本構文

CSS
.hero {
  /* UIバー表示時でもビューポート全体を覆う */
  min-height: 100svh;
}

.full-screen {
  /* 動的にビューポートサイズに追従 */
  height: 100dvh;
}

.sticky-footer {
  /* UIバーが隠れた状態の最大値を基準 */
  min-height: 100lvh;
}

実務での使いどころ

  • モバイルのフルスクリーンUI

    100svh でアドレスバーが表示されていても確実にビューポート全体を覆うレイアウト。

  • 動的なビューポート追従

    100dvh でスクロールに応じてUIバーが出入りしても、高さが自動調整される。

注意点

  • dvh はUIバーの出入りに伴いリアルタイムで値が変化するため、レイアウトシフトの原因になる場合がある。

アクセシビリティ

  • ビューポート単位でコンテンツの表示範囲が制限される場合、スクロールでアクセスできるよう配慮する。