Skip to header Skip to main navigation Skip to main content Skip to footer

Main navigation

  • Home
  • Drupal Theming
  • Web Designer In Austin
  • Drupal Development Portfolio (opens in new tab)
  • Blog
  • Videos
  • Contact
Web Designer In Austin
Designing Drupal, Defining Distinction

CSS Units Explained: rem vs px vs em vs vw for Width, Typography, and Spacing

Understanding CSS Units: rem, px, em, and vw Explained
Alaa Haddad, professional Drupal developer based in Austin, TX   Drupal Care
  1:57 AM CDT, Sun July 27, 2025
Share

Define the Width Using rem vs px vs em vs vw

When defining the width of elements in CSS, the choice between rem, px, em, and vw can significantly impact how your layout adapts to different screen sizes and user preferences. Each unit has its use cases, benefits, and challenges.

1. Width Defined by rem

The rem unit is relative to the root element’s font size (<html>). By default, most browsers set this to 16px, meaning 1rem = 16px. If the root font size changes, all elements using rem will scale accordingly.

Example:

html {
  font-size: 16px;
}
.container {
  width: 50rem; /* 50 * 16px = 800px */
}

Pros:

  • Scales proportionally when the root font size changes.
  • Good for responsive typography-based layouts.

Cons:

  • If the root font size is modified dynamically, widths can unexpectedly change.

2. Width Defined by px

The px unit is an absolute value that does not depend on the parent or root font size.

Example:

.container {
  width: 800px;
}

Pros:

  • Predictable and consistent across different environments.
  • Best for fixed layouts where precision is required.

Cons:

  • Not scalable with user settings (e.g., zoom or accessibility preferences).
  • Less responsive than relative units.

3. Width Defined by em

The em unit is relative to the font size of the parent element. This makes it dynamic based on where it is applied.

Example:

.parent {
  font-size: 20px;
}
.child {
  width: 10em; /* 10 * 20px = 200px */
}

Pros:

  • Useful for components that scale based on their parent’s font size.
  • Works well for modular design systems.

Cons:

  • Can become unpredictable in deeply nested elements.
  • Requires careful planning to avoid compounding scaling effects.

4. Width Defined by vw

The vw unit is relative to the viewport width. 1vw equals 1% of the browser’s width.

Example:

.container {
  width: 50vw; /* 50% of the viewport width */
}

Pros:

  • Makes layouts truly responsive without media queries.
  • Ideal for full-width sections or fluid designs.

Cons:

  • Can cause elements to become too large or too small on extreme screen sizes.
  • Can lead to horizontal scrolling if not managed properly.

Mixing Width Units

When combining different units, consider how they interact. Here are a few common scenarios:

Scenario 1: rem Width with em Font Size

html {
  font-size: 16px;
}
.parent {
  font-size: 20px;
  width: 40rem; /* 40 * 16px = 640px */
}
.child {
  font-size: 2em; /* 2 * 20px = 40px */
}

This ensures that the width is based on the root size while typography scales with the parent.

Typography: rem vs em vs px

Typography with rem

html {
  font-size: 16px;
}
p {
  font-size: 1.25rem; /* 20px */
}

Typography with em

.parent {
  font-size: 20px;
}
.child {
  font-size: 1.5em; /* 30px */
}

Typography with px

p {
  font-size: 18px;
}

Conclusion

  • Use rem for typography and layout widths that should scale with the root font size.
  • Use em for components that need to scale based on their container.
  • Use px when you need fixed sizes that won’t change.
  • Use vw for layouts that adapt directly to the viewport width.

Mixing these units strategically can create flexible, responsive designs while maintaining control over typography and spacing.

HTML

Footer menu

  • About
  • Privacy Policy
  • Terms & Conditions
  • Flash Web Center, LLC (opens in new tab)
  • Drupal Care (opens in new tab)
  • Log in
  • Contact

Copyright © 2026 Flash Web Center, LLC | All rights reserved

Developed & Designed by Alaa Haddad