Bird
Raised Fist0
CSSmarkup~5 mins

What is responsive design in CSS

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction

Responsive design makes websites look good on all devices like phones, tablets, and computers. It changes the layout to fit the screen size.

When building a website that people will visit on phones and computers.
When you want your website to be easy to read and use on small screens.
When you want images and text to adjust automatically to different screen sizes.
When you want to avoid users zooming or scrolling sideways on mobile devices.
When you want your website to work well on both landscape and portrait modes.
Syntax
CSS
@media (max-width: 600px) {
  /* CSS rules here for small screens */
}

The @media rule lets you apply CSS only when the screen matches certain conditions.

Common conditions check screen width to change styles for phones or tablets.

Examples
This changes the background color to light blue on screens 600px wide or smaller.
CSS
@media (max-width: 600px) {
  body {
    background-color: lightblue;
  }
}
This sets the background color to white on screens wider than 600px.
CSS
@media (min-width: 601px) {
  body {
    background-color: white;
  }
}
This makes images shrink to fit their container but keep their shape.
CSS
img {
  max-width: 100%;
  height: auto;
}
Sample Program

This example shows a simple page with two columns on wide screens. On small screens (600px or less), the columns stack vertically. The image and text resize nicely.

CSS
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Responsive Design Example</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      margin: 1rem;
      background-color: white;
      color: black;
    }
    header {
      background-color: #4CAF50;
      color: white;
      padding: 1rem;
      text-align: center;
    }
    main {
      display: flex;
      gap: 1rem;
    }
    article {
      flex: 1;
      background-color: #f4f4f4;
      padding: 1rem;
      border-radius: 0.5rem;
    }
    img {
      max-width: 100%;
      height: auto;
      border-radius: 0.5rem;
    }
    @media (max-width: 600px) {
      main {
        flex-direction: column;
      }
      header {
        font-size: 1.2rem;
      }
    }
  </style>
</head>
<body>
  <header>
    <h1>Welcome to Responsive Design</h1>
  </header>
  <main>
    <article>
      <h2>About</h2>
      <p>This layout changes when the screen is small.</p>
    </article>
    <article>
      <h2>Image</h2>
      <img src="https://via.placeholder.com/300" alt="Placeholder image" />
    </article>
  </main>
</body>
</html>
OutputSuccess
Important Notes

Always include the <meta name="viewport"> tag for responsive design to work on phones.

Use flexible units like percentages or rem instead of fixed pixels for widths and fonts.

Test your design by resizing the browser window or using device simulation in browser DevTools.

Summary

Responsive design makes websites adapt to different screen sizes.

Use CSS @media queries to change styles based on screen width.

Flexible layouts and images help keep content readable and usable everywhere.

Practice

(1/5)
1. What is the main purpose of responsive design in web development?
easy
A. To make websites look good on all screen sizes
B. To add animations to a website
C. To create websites only for desktop computers
D. To increase website loading speed

Solution

  1. Step 1: Understand the goal of responsive design

    Responsive design aims to make websites adjust their layout and content to fit different screen sizes like phones, tablets, and desktops.
  2. Step 2: Compare options to the goal

    Only To make websites look good on all screen sizes matches this goal by focusing on making websites look good on all screen sizes.
  3. Final Answer:

    To make websites look good on all screen sizes -> Option A
  4. Quick Check:

    Responsive design = adapt to screen sizes [OK]
Hint: Responsive design means adapting to screen sizes [OK]
Common Mistakes:
  • Confusing responsive design with animations
  • Thinking responsive design is only for desktops
  • Believing it only improves loading speed
2. Which CSS syntax is used to apply styles only on screens smaller than 600px wide?
easy
A. @media screen and (width: 600px) { ... }
B. @media screen and (min-width: 600px) { ... }
C. @media (width > 600px) { ... }
D. @media screen and (max-width: 600px) { ... }

Solution

  1. Step 1: Identify correct media query syntax for max-width

    The correct syntax to target screens smaller than 600px is using max-width: 600px inside @media.
  2. Step 2: Check each option

    @media screen and (max-width: 600px) { ... } uses max-width: 600px correctly. @media screen and (min-width: 600px) { ... } uses min-width which targets larger screens. Options C and D use incorrect syntax.
  3. Final Answer:

    @media screen and (max-width: 600px) { ... } -> Option D
  4. Quick Check:

    max-width targets smaller screens [OK]
Hint: Use max-width for smaller screens in @media [OK]
Common Mistakes:
  • Using min-width instead of max-width for small screens
  • Incorrect media query syntax
  • Missing 'screen' keyword
3. Given the CSS below, what will happen when the browser width is 500px?
body { background-color: white; } @media (max-width: 600px) { body { background-color: lightblue; } }
medium
A. The background color will be lightblue
B. The background color will be black
C. The background color will be white
D. There will be no background color

Solution

  1. Step 1: Understand media query condition

    The media query applies styles when the screen width is 600px or less.
  2. Step 2: Check the browser width and applied styles

    At 500px width, the media query condition is true, so the background color changes to lightblue, overriding the default white.
  3. Final Answer:

    The background color will be lightblue -> Option A
  4. Quick Check:

    Width 500px < 600px triggers lightblue background [OK]
Hint: Media queries override styles when conditions match [OK]
Common Mistakes:
  • Ignoring media query and thinking default style applies
  • Confusing max-width with min-width
  • Assuming no style change occurs
4. Identify the error in this CSS snippet for responsive design:
@media max-width: 800px { .container { width: 100%; } }
medium
A. Using width instead of max-width
B. Missing parentheses around max-width condition
C. Incorrect selector .container
D. No error, code is correct

Solution

  1. Step 1: Check media query syntax

    The correct syntax requires parentheses around the condition, like (max-width: 800px).
  2. Step 2: Identify the error in the snippet

    The snippet misses parentheses, so it is invalid CSS and won't work as intended.
  3. Final Answer:

    Missing parentheses around max-width condition -> Option B
  4. Quick Check:

    Media queries need parentheses [OK]
Hint: Always wrap media conditions in parentheses [OK]
Common Mistakes:
  • Omitting parentheses in @media queries
  • Confusing max-width with width property
  • Thinking selector causes error
5. You want images on your website to resize smoothly on different devices. Which CSS approach best supports responsive design?
hard
A. Use only max-width without height
B. Set fixed width and height in pixels
C. Set image width to 100% and height to auto
D. Use background images instead of <img> tags

Solution

  1. Step 1: Understand image resizing in responsive design

    Images should scale with their container to fit different screen sizes without distortion.
  2. Step 2: Evaluate CSS options for images

    Setting width to 100% and height to auto keeps the image's aspect ratio and allows it to resize smoothly.
  3. Final Answer:

    Set image width to 100% and height to auto -> Option C
  4. Quick Check:

    Width 100% + height auto = responsive images [OK]
Hint: Use width 100% and height auto for responsive images [OK]
Common Mistakes:
  • Using fixed pixel sizes causing images to not resize
  • Ignoring height causing distortion
  • Thinking background images solve all responsive needs