Skip to content
ScreenMetricLab Check screen

Content cluster guide

100vh vs 100dvh vs 100svh

Understand modern viewport height units and why mobile browser chrome can change visible page height.

Updated 2026-06-26 6 min read

Why 100vh can be tricky on mobile

Classic vh units were simple on desktop, but mobile browsers have dynamic address bars and toolbars. When browser chrome expands or collapses, a 100vh section can appear too tall, hide content, or create unexpected scrolling.

When to use 100dvh

The dvh unit reflects the dynamic viewport height. It is often a better choice for app-like panels, mobile sections, and full-screen layouts where the visible page height should respond to browser UI changes.

When to use svh and lvh

Small viewport height, or svh, represents a safer minimum visible height. Large viewport height, or lvh, represents the larger possible viewport. Use them when you need predictable bounds instead of a constantly changing value.

A safer CSS pattern

For full-height sections, consider pairing min-height with dynamic units and sensible fallbacks. Test the result on real mobile browsers, responsive mode, and different orientations before relying on one unit everywhere.

Safer full-height CSS example

Start with a simple fallback, then layer modern viewport units where supported.

.hero {
  min-height: 100vh;
  min-height: 100svh;
}

@supports (height: 100dvh) {
  .hero {
    min-height: 100dvh;
  }
}

Frequently asked questions

Is 100dvh better than 100vh?

For many mobile full-height layouts, 100dvh is more accurate because it follows the dynamic visible viewport.

Should I remove vh completely?

No. vh is still useful, especially on desktop. Use modern units where mobile browser height changes matter.

What does svh mean?

svh means small viewport height. It represents the smaller possible visible viewport height.

Can browser support vary?

Yes. Keep fallbacks simple and test across target browsers.