Responsive web design lets a single HTML document adapt smoothly across smartphones, tablets, and desktop monitors. Instead of maintaining separate mobile websites, you combine the HTML viewport meta tag with fluid images, flexible CSS layouts, and media queries.
Phones automatically shrink non-responsive sites down to desktop width unless you add the viewport meta tag inside head with name="viewport" and content="width=device-width, initial-scale=1.0".
This instructs mobile browsers to match the page width to the device's physical CSS pixels at a 1.0 zoom scale.
Avoid fixed pixel widths like width: 900px; on containers. Use max-width percentages, responsive clamp() font sizes, and the HTML picture element when serving cropped artwork for different screen widths.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Responsive HTML Page</title>
<style>
.container { max-width: 960px; margin: 0 auto; padding: 16px; font-family: system-ui, sans-serif; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.card { background: #f1f5f9; padding: 16px; border-radius: 8px; }
img { max-width: 100%; height: auto; display: block; border-radius: 6px; }
h1 { font-size: clamp(1.5rem, 3vw, 2.5rem); }
</style>
</head>
<body>
<div class="container">
<h1>Responsive Card Grid</h1>
<div class="grid">
<div class="card"><h2>Mobile First</h2><p>Cards stack in one column on narrow phones.</p></div>
<div class="card"><h2>Fluid Images</h2><p>Max-width 100% stops horizontal overflow.</p></div>
<div class="card"><h2>Auto-Fit Grid</h2><p>Columns expand automatically on wide monitors.</p></div>
</div>
</div>
</body>
</html>
Open Chrome or Firefox DevTools and toggle the Device Toolbar (Ctrl+Shift+M or Cmd+Shift+M) to preview 360px mobile screens, 768px tablets, and 1440px desktops without leaving your desk.
maximum-scale=1.0 or user-scalable=no: Disabling pinch-to-zoom blocks visually impaired visitors from enlarging small text.800px element forces sideways scrolling on 375px phones.clamp(min, preferred, max) scales font sizes or spacing smoothly with viewport width while enforcing readable minimum and maximum limits.
Use picture with source media="..." when you want to serve a portrait-cropped image on phones and a wide landscape image on desktops.
Sign in to track your learning journey, earn industry-recognized certificates, and join our elite developer community.
Quick Access With
Experiment with the code from this lesson in our interactive playground.
You've completed this section! Take a quick 5-question quiz to check your understanding.