1
HTML/CSSIntermediate#css#cross-browser
vh is fixed based on the largest possible viewport and doesn't account for mobile browser UI (address bar) showing/hiding, causing layout jumps. dvh (dynamic viewport height) adjusts in real time as the browser chrome changes, giving more accurate full-height mobile layouts.
.hero {
height: 100vh; /* can be taller than visible area on mobile */
height: 100dvh; /* adjusts to actual visible viewport */
}