All articles
CSS debugging

Why Your Layout Breaks on Mobile

The most common reasons a desktop layout falls apart on phones - and a checklist to catch each one before it ships.

6 min read - Updated 2026-06-15

Use this guide as a compact release reference, then validate the same breakpoints in Sizzy with synchronized devices and screenshot evidence.

The usual culprits

Mobile layout breakage almost always comes from a short list: a missing viewport meta tag, fixed widths that don't fit a narrow screen, content overflowing horizontally, images without max-width, and tap targets that are too small. None are exotic - they're just easy to miss when you develop on a wide monitor.

Missing or wrong viewport meta tag

Fixed pixel widths wider than the phone

Horizontal overflow from oversized elements

Tap targets smaller than ~44px

The bugs you only see on real widths

Some issues never appear on desktop: 100vh clipping behind the address bar, content hidden under a notch, sticky elements covering controls, and forms that get hidden by the on-screen keyboard. These need real mobile widths - and ideally the browser chrome visible - to reproduce. Testing only at desktop sizes guarantees they reach production.

100vh sections clipped by the mobile address bar

Content hidden behind the notch without safe-area insets

Sticky headers/footers covering interactive elements

The keyboard obscuring focused form fields

Catch it before it ships

The reliable defense is to develop with real mobile widths in view, not as an afterthought. Sizzy keeps phone viewports beside your desktop layout with synchronized interaction, so mobile breakage shows up the moment you introduce it - and you can run a full flow on the phone width to catch keyboard and sticky-element issues.

Keep a phone viewport visible while you build

Run interactive flows at mobile width, not just static views

Confirm safe-area and dynamic-viewport handling

Sweep all breakpoints before tagging a release

Release checklist

Viewport meta tag is present and correct.

No fixed widths exceed the smallest supported viewport.

Dynamic viewport units handle the mobile address bar.

Interactive flows are tested at real mobile widths.

Frequently asked questions

Why does my website look broken on mobile but fine on desktop?

The most common causes are a missing viewport meta tag, fixed widths wider than the phone, horizontal overflow, and 100vh clipping behind the address bar. These only surface at narrow widths, so test on real mobile viewports.

How do I stop content hiding behind the notch?

Add viewport-fit=cover to your viewport meta tag and use env(safe-area-inset-*) padding on edge-anchored elements so headers, footers, and navigation clear the notch and home indicator.

Why does my form break when the mobile keyboard opens?

The on-screen keyboard shrinks the visible viewport and can hide focused fields or fixed footers. Test forms with the keyboard open at mobile width, use dynamic viewport units, and avoid pinning critical UI to the bottom.

Related guides