Responsive Design Testing Guide

A practical strategy for testing websites across screen sizes — which breakpoints matter, what bugs to look for, and how to test efficiently.

By Sebastian Messingfeld, Staff Engineer · Updated

Why "Just Test on Mobile" Is Not a Strategy

Most responsive testing advice stops at "check your site on a phone". That is not wrong — but it leaves out the why, the what, and the how. Without a systematic approach you end up with blind spots: layouts that look fine on your iPhone but break on a 768px tablet, or a desktop design that falls apart at 1024px on a small laptop.

This guide gives you a concrete testing strategy: the specific viewport widths to check, the exact layout problems to look for at each one, and a checklist you can run on any project before shipping.

Which Breakpoints to Test and Why

Testing every conceivable screen width is impractical. Instead, focus on the widths that represent real user populations and the boundaries where layouts are most likely to break.

WidthPriorityWhy it mattersWhat to check
320pxEdge caseOldest iPhones (SE 1st gen) and some budget Android phones. A layout that passes 320px will work everywhere narrower.Text truncation, nav icon overflow, inputs touching screen edge
375pxCriticalThe most common mobile width — iPhone SE (3rd gen), Galaxy S series. This is your primary mobile target.Full layout integrity, font sizes, button tap targets, hero sections
430pxImportantiPhone Pro Max (430–440px) and large Android phones. Larger phones now make up a significant share of mobile traffic.Whether your mobile layout scales gracefully or wastes the extra space
768pxCriticalThe classic tablet portrait breakpoint. Many CSS frameworks (Bootstrap, Tailwind) place a major breakpoint here.Column reflow, sidebar appearance, navigation switching to desktop style
1024pxImportantTablet landscape and small laptops (MacBook Air 11"). Often a second desktop breakpoint.Content max-width, two-column layouts forming correctly, sticky headers
1280pxCriticalSmallest common laptop/desktop target. Entry point for desktop-specific layouts.Full desktop layout, padding/margins, line lengths, grid columns
1920pxImportantFull HD — the most common desktop resolution worldwide. Many users sit here.Max-width constraints, centered layouts, no stretched content
2560pxEdge caseQHD / ultrawide monitors. Reveals missing max-width on full-bleed sections.Background sections stretching too wide, text becoming unreadably long

What to Look for: Layout Issues by Category

These are the most common classes of responsive bug. Work through each category systematically rather than eyeballing pages at random.

↔

Overflow

  • Horizontal scrollbarAn element is wider than the viewport. Check for fixed pixel widths, absolute positioning, and table cells.
  • Text overflow without wrappingLong words or URLs that break out of their containers. Fix with overflow-wrap: break-word.
  • Image overflowImages at their natural size exceeding container width. Always set max-width: 100% on img.
T

Readability

  • Font too small on mobileBody text below 16px on mobile triggers iOS auto-zoom on form inputs and strains reading.
  • Line length too long on desktopLines over 80 characters make reading tiring. Use max-width on text containers at wide viewports.
  • Low contrast in different statesContrast that passes on desktop can fail on small text at mobile sizes due to rendering differences.
⬚

Spacing

  • Padding collapse on mobileFixed padding looks generous on desktop but tight on 375px. Use relative units or viewport-based spacing.
  • Gaps between grid/flex itemsFixed gap values designed for desktop become proportionally oversized on mobile single-column layouts.
  • Section margins too largeVertical margins between sections can consume most of a mobile screen, pushing content below the fold.
⊙

Interaction

  • Tap targets too smallButtons and links under 44×44px are hard to tap accurately. Apple and Google both recommend this minimum.
  • Hover-only interactionsTooltips or menus triggered only by :hover are inaccessible on touch screens.
  • Fixed elements blocking contentFixed headers or banners that are correctly sized for desktop may cover too much of a small viewport.
☰

Navigation

  • Navbar items overflowingHorizontal nav links that wrap or overflow on tablet widths before the mobile hamburger takes over.
  • Hamburger menu not triggeringMobile nav icon present but JavaScript fails due to viewport mismatch or script load order.
  • Dropdown clipped by containerDropdown menus with overflow: hidden on a parent get cut off instead of layering above content.

Common Responsive Bugs and How to Fix Them

These are the bugs that appear repeatedly across projects. Understanding why they happen makes them faster to diagnose and fix.

The 100vw scrollbar trapVisible on any desktop viewport with a scrollbar

Setting width: 100vw on a full-bleed section adds the scrollbar width to the element width, causing horizontal overflow. Use width: 100% on block elements instead.

Flexbox minimum size overflowAppears at narrow viewports when text content is long

Flex children have an implicit min-width: auto, meaning they will not shrink below their content size. Add min-width: 0 to flex children that should shrink.

Absolute-positioned elements escaping the flowInconsistent — often only visible at one specific breakpoint range

An absolutely positioned element without a positioned ancestor climbs the DOM to the viewport, causing overflow at specific widths where it lands outside the expected container.

CSS Grid auto columns stretchingAppears at tablet and mobile widths

grid-template-columns: repeat(3, 1fr) does not wrap. At 768px it forces three narrow columns. Use auto-fill with minmax instead: repeat(auto-fill, minmax(240px, 1fr)).

Images without explicit height in flex/gridMixed-content rows with text next to images

Images inside flex rows stretch to fill the row height when align-items: stretch is in effect (the default). Set align-items: flex-start or add align-self: flex-start to the image.

Viewport height issues on mobile browsersSections using height: 100vh on iOS Safari and Chrome Android

height: 100vh includes the browser toolbar on mobile, causing the bottom of full-screen sections to be hidden. Use the dvh unit (100dvh) or JS-based viewport height measurement.

Font size triggering auto-zoom on iOSForms on iOS Safari at any viewport width

Input elements with font-size below 16px cause iOS Safari to zoom the page on focus. Always set font-size: 16px or larger on inputs, or add font-size: max(16px, 1rem).

Z-index stacking context confusionAnimated or transformed sections near the top of mobile pages

A fixed header with z-index: 100 can be visually overlapped by a child element in a section that creates its own stacking context (transform, opacity, filter). Often only visible at certain scroll positions on mobile.

The Pre-Ship Responsive Testing Checklist

Run this at every major breakpoint (375px, 768px, 1280px, 1920px) before shipping any page. Each step targets a specific class of bug that visual inspection alone misses.

  1. 1
    Check for horizontal scrollbar

    At every breakpoint: is there an x-axis scrollbar? If yes, open DevTools and run: Array.from(document.querySelectorAll("*")).filter(el => el.scrollWidth > document.body.clientWidth)

  2. 2
    Test all navigation states

    Open and close the mobile menu. Trigger every dropdown. Confirm nothing is clipped, overlapped, or inaccessible.

  3. 3
    Scroll the full page

    Scroll from top to bottom at each breakpoint. Fixed elements can overlap content at specific scroll positions that are invisible at page top.

  4. 4
    Resize through breakpoints slowly

    Drag the window edge from 320px to 1920px. Watch for sudden layout jumps that indicate a missing breakpoint in your CSS.

  5. 5
    Focus every form input

    On mobile viewports: does the page zoom when you tap an input? If yes, check font-size on that input.

  6. 6
    Test interactive elements at touch size

    For tap targets: are all buttons and links at least 44×44px? Use DevTools to inspect computed width and height.

  7. 7
    Check images and media

    Do all images have max-width: 100%? Are any images blurry because a fixed px width forces them larger than their natural size?

  8. 8
    Verify text line lengths

    On desktop (1440px+): are paragraphs constrained to a readable line length (60–80 chars)? Full-width prose on a 1920px screen is hard to read.

Using screensize.io for This Workflow

screensize.io opens real browser windows at exact pixel dimensions — not DevTools simulations. Here is how to apply the strategy above with it:

1
Open your critical breakpoints in parallel

Enter your URL and open 375px, 768px, 1280px, and 1920px at the same time. Arrange them side by side to compare layout transitions visually.

2
Check for horizontal overflow first

At each window: is there a horizontal scrollbar? If yes, open that window's DevTools to isolate the offending element before moving on.

3
Work through the checklist at each breakpoint

Use the 8-step checklist above. The popup windows stay open while you work, so you can quickly switch between viewports to compare behaviour.

4
Re-open after each fix

After fixing a bug, re-open the relevant popup windows with the updated URL (or a localhost build) to verify the fix does not introduce a regression at another breakpoint.

Frequently Asked Questions

Which screen widths should I prioritize when testing?

Prioritize 375px (standard phone), 768px (tablet portrait), 1280px (laptop), and 1920px (desktop). These four cover the overwhelming majority of real-world traffic. Then add 320px and 430px to cover the smallest and largest common phones.

What layout issues should I look for during responsive testing?

The most common issues are horizontal overflow (elements wider than the viewport causing a scrollbar), text too small to read on mobile, tap targets smaller than 44×44px, images that overflow their containers, and navigation that breaks or collapses poorly on narrow screens.

What is the most common responsive design bug?

Horizontal overflow is the single most common bug — caused by elements with fixed pixel widths, absolute-positioned elements that escape their container, or tables wider than the viewport. You can detect it with: document.querySelectorAll("*").forEach(el => { if (el.scrollWidth > document.body.clientWidth) console.log(el) })

Should I test at every possible screen size?

No — test at your chosen breakpoints plus a few widths between them. The goal is to verify your layout transitions smoothly at every breakpoint and does not break at arbitrary widths in between. Checking 5–8 viewport widths per page is usually enough to catch all layout issues.

How is testing with screensize.io different from browser DevTools?

screensize.io opens real browser windows at the exact dimensions you choose, so scrollbars, browser chrome, and rendering are identical to what a real user sees. DevTools simulates a viewport inside an existing window, which can mask overflow issues, scrollbar width differences, and popup interactions.

Test Screen Sizes Right Now

Use screensize.io to preview your website at any of these resolutions instantly — no DevTools needed.

Open screensize.io →