Topic

Design Like a Pro: Master these CSS Units (px, rem, em, vh, vw, and fr)

Want to create a website that looks incredible on every device? It all starts with mastering CSS units! In this post, we’ll break down the 6 essential units – px, rem, em, vh, vw, and fr – and show you how to use them like a pro. Get ready to transform your website into a stunning work of art!

1. px (Pixels)

What it is: A pixel is a fixed unit of measurement. It is a static value based on screen resolution.
When to use it: Best for precise control over an element’s size, especially in layouts where pixel-perfect design is required.

				
					.box {
  width: 300px;
  height: 200px;
  background-color: lightblue;
}
				
			

Pros: Predictable and consistent on all screen sizes.
Cons: Not responsive; doesn’t scale with screen size or user preferences.

2. rem (Root Em)

What it is: rem stands for “root em”. It’s a relative unit based on the root element’s font size (usually html).
When to use it: Ideal for responsive typography and scaling, as it scales uniformly across the page when the root font size changes.

				
					html {
  font-size: 16px; /* 1rem = 16px */
}
.text {
  font-size: 2rem; /* 32px */
}
				
			

Pros: Scales uniformly with the root font size.
Cons: Can be difficult to manage when working with deeply nested elements.

3. em

What it is: em is a relative unit based on the parent element’s font size.
When to use it: Useful for scaling elements relative to their parent. Be cautious, though, as it compounds when nested.

				
					.container {
  font-size: 18px;
}
.text {
  font-size: 2em; /* 36px (2 times the parent font size) */
}
				
			

Pros: Flexible for creating scalable, hierarchical layouts.
Cons: Can lead to unexpected results when used in deeply nested elements due to compounding.

4. vh (Viewport Height)

What it is: vh represents a percentage of the viewport’s height. 1vh equals 1% of the viewport’s height.
When to use it: Perfect for making elements adapt to the height of the screen, like creating full-screen sections.

				
					.full-height {
  height: 100vh; /* Full height of the viewport */
  background-color: lightgreen;
}
				
			

Pros: Responsive to viewport height, great for full-screen layouts.
Cons: Can cause issues on mobile browsers due to the browser’s UI appearing/disappearing.

5. vw (Viewport Width)

What it is: vw
represents a percentage of the viewport’s width. 1vw
equals 1% of the viewport’s width
.
When to use it: Ideal for scaling elements based on the viewport’s width, especially useful in responsive design.

				
					.responsive-box {
  width: 50vw; /* 50% of the viewport's width */
  background-color: lightcoral;
}

				
			

Pros: Perfect for creating flexible, responsive layouts.
Cons: May require fine-tuning for very narrow or wide screens

6. fr (Fractional Unit)

What it is: fr
is a flexible unit used in CSS Grid
layouts. It divides available space into proportional chunks
.
When to use it: Great for defining grid tracks that should share available space equally or proportionally.

				
					.grid-container {
  display: grid;
  grid-template-columns: 1fr 2fr; /* First column gets 1 fraction, second gets 2 */
}
.grid-item {
  background-color: lightyellow;
}
				
			

Pros: Provides flexible, responsive grid layouts.
Cons: Only works with CSS Grid; not applicable for other layout types.

Conclusion

Selecting the perfect unit is all about context. Here’s a quick rundown:

px: Ideal for precise designs
rem and em: Great for scalable, responsive layouts
vh and vw: Perfect for viewport-sized designs
fr: Fantastic for flexible grids

Experiment with these units to craft designs that are both responsive and stunning. Happy coding!

Spread the Knowledge!
Privacy Overview

Cookie information is stored in your browser and performs functions such as recognizing you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful. Our website uses cookies to provide you with the best user experience possible.