新しいCSS viewport単位でモバイル対応の問題が遂に解決、dvh/svh/lvhで始まる実用的レイアウト

つくば市のホームページ制作会社

長年ウェブ制作者を悩ませてきたモバイルブラウザでの100vh問題が、ついに根本的な解決策を手に入れた。CSSが正式な修正として3つの新しいviewport単位セットを提供し、これまでJavaScriptに頼っていた複雑な回避策が不要になった。

フルスクリーンのヒーローセクションを作り、スマートフォンで開くと下部がブラウザのアドレスバーに隠れるという現象は、100vhが設計上モバイルで「嘘をつく」ことが原因だった。モバイルでは、それが嘘をつくという状況が何年も続いていたが、この状況に終止符が打たれる。

新しい解決策は、3つのviewport状態large(lvh)、small(svh)、dynamic(dvh)という明確な区分けを持つ。それぞれが異なる用途に最適化されている。svh(Small Viewport Height)はブラウザUIが展開された状態でのviewport高さを表し、最小の可視領域となる。lvh(Large Viewport Height)はブラウザUIが折りたたまれた状態での高さで、最大の可視領域を意味する。

最も興味深いのはdvh(Dynamic Viewport Height)だ。真のMVP。この単位はブラウザUIが変化するに従って自動的にスケールする。アドレスバーが縮むと1dvhは大きくなり、展開すると1dvhは小さくなる。ただし、動的な性質ゆえに使用場面を選ぶ必要がある。

ブラウザ対応状況は良好で、Chrome 108+、Edge 108+、Firefox 101+、Safari 15.4+、Opera 94+で完全サポートされている。2026年初頭時点で、世界のユーザーの約95%がこれらの単位をサポートするブラウザを使用している。古いブラウザとの互換性は、CSSカスケードを利用した二段階宣言で解決できる。

実装は驚くほど簡潔だ。ブラウザは理解できないCSS宣言を静かに無視するため、この二行パターンはサポートされているすべての場所で新しい動作を提供し、その他の場所では合理的なフォールバックを提供する。具体的な使い分けは明確で、画面全体を埋めたい場合はlv単位を使用し、保証された可視領域内に常にフィットさせたい場合はsv単位を使用する。

日本の制作現場でも導入しやすい技術革新といえる。従来のJavaScriptによる回避策と異なり、パフォーマンスオーバーヘッドが少なく、メンテナンスも簡単だ。特に中小企業のサイトでよく見かけるシンプルなヒーローセクションから、複雑なモーダルUIまで、幅広い場面で活用できる。それは小さな変更だが、サイトのすべてのモバイル訪問者にとって実際の違いを生む実用的な改善といえるだろう。

1-3 基本的なホームページ制作:レスポンシブデザインの重要性

1-3 基本的なホームページ制作:レスポンシブデザインの重要性

1-3 レスポンシブデザインの重要性

はじめに
ウェブの世界は絶えず進化しており、ユーザーが情報を取得する方法も多様化しています。スマートフォン、タブレット、デスクトップといったさまざまなデバイスからアクセスが可能になった今、どのデバイスを使用しても快適にウェブサイトを閲覧できるようにすることが、ウェブデザインにおける重要な課題となっています。この章では、レスポンシブデザインの概念とその重要性について掘り下げていきます。

1. レスポンシブデザインとは

レスポンシブデザインとは、異なる画面サイズや解像度を持つデバイスに対して、ウェブページのレイアウトが自動的に調整されるデザインアプローチのことを指します。このアプローチにより、ウェブページはどのデバイスからアクセスしても、最適なユーザー体験を提供することができます。
レスポンシブデザイン

2. レスポンシブデザインの重要性

・ユーザー体験の向上
ユーザーがどのデバイスを使用していても、ウェブページの読み込み速度が速く、ナビゲーションが簡単で、コンテンツが見やすいことが保証されます。

・検索エンジン最適化(SEO)の強化
Googleを含む多くの検索エンジンは、レスポンシブデザインを採用しているウェブサイトを優遇します。これは、モバイルフレンドリーなサイトが検索結果でより高いランキングを得るためです。

・管理の効率化
レスポンシブデザインを採用することで、異なるデバイス用に複数のウェブサイトを管理する必要がなくなります。一つのウェブサイトで全てのデバイスに対応できるため、ウェブサイトの更新や管理が簡単になります。

3. レスポンシブデザインの実装方法

レスポンシブデザインを実現するためには、CSSメディアクエリを使用して、異なる画面サイズに応じてスタイルを適用します。以下は、基本的なメディアクエリの使用例です。

@media (max-width: 600px) {
    body {
        background-color: lightblue;
    }
}

このCSSコードは、画面の幅が600ピクセル以下の場合に、背景色をライトブルーに変更するよう指定しています。メディアクエリを使用することで、画面サイズに応じて異なるスタイルを適用し、レスポンシブデザインを実現することができます。

4. まとめ

レスポンシブデザインは、現代のウェブデザインにおいて必須のアプローチです。異なるデバイスを使用する全てのユーザーに最適な体験を提供することで、アクセシビリティの向上、SEOの強化、管理の効率化を実現できます。この章で学んだレスポンシブデザインの概念と実装方法を応用することで、あなたのウェブサイトもより多くのユーザーにとってアクセスしやすいものになるでしょう。