HTML & CSS - Mastery / Responsive Design

Viewport and Device Widths

❓What Is the Viewport?

The viewport is the visible area of a webpage on a screen. It changes when you:

  • Resize your browser window

  • Rotate your phone or tablet

  • Zoom in or out


✅ Why It Matters

Without proper viewport settings, mobile browsers assume a desktop layout, causing:

  • Tiny, unreadable text

  • Buttons too small to tap

  • Layout broken on small screens

With the viewport tag, you get:

  • Mobile Responsiveness: Content scales to the device’s screen

  • Controlled Zoom: Set initial zoom and disable/allow user zoom

  • Better UX: Readable text and usable interface

  • Accurate Media Queries: CSS breakpoints work as intended


🔖 The Meta Tag

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Attribute

Purpose

width=device-width

Match viewport width to the device’s screen

initial-scale=1.0

Start with 100% zoom (no zoom in or out)


🆚 Viewport vs. Device Width

Feature

Viewport Width

Device Width

Dynamic?

Yes (resizes/zooms)

No (fixed hardware value)

Changes by

Zoom, resize, rotate

Orientation only

Use in CSS

@media (max-width…)

Indirectly via viewport tag


📱 Simple Example

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Viewport Meta Tag Example</title>
    <link rel="stylesheet" href="style.css" />
  </head>
  <body>
    <b>Viewport testing thing out </b>
    <img src="<https://www.w3schools.com/css/img_chania.jpg>" alt="Chania" />
    <p>
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy
      nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut
      wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit
      lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum
      iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel
      illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto
      odio dignissim qui blandit praesent luptatum zzril delenit augue duis
      dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis
      eleifend option congue nihil imperdiet doming id quod mazim placerat facer
      possim assum. Nam liber tempor cum soluta nobis eleifend option congue
      nihil imperdiet doming id quod mazim placerat facer possim assum.
    </p>
    <div style="width: 1000px; background: red; color: white">
      This is a wide fixed-width box.
    </div>
  </body>
</html>

Without viewport meta tag

With viewport meta tag